Go HTTP ক্লায়েণ্টৰ transport-এ প্ৰক্সি বাছি লয়। মানক transport সলনি কৰাৰ আগতে ক্লোন কৰক, যাতে ডিফল্ট ক্লায়েণ্টৰ আন ব্যৱহাৰকাৰীৰ বৰ্তমানৰ ৰাউটিং অক্ষুণ্ণ থাকে।

package main

import (
    "fmt"
    "io"
    "log"
    "net/http"
    "net/url"
    "time"
)

func main() {
    proxyURL, err := url.Parse("http://203.0.113.10:8080")
    if err != nil {
        log.Fatal(err)
    }

    transport := http.DefaultTransport.(*http.Transport).Clone()
    transport.Proxy = http.ProxyURL(proxyURL)
    defer transport.CloseIdleConnections()

    client := &http.Client{
        Transport: transport,
        Timeout:   15 * time.Second,
    }

    response, err := client.Get("https://example.com/")
    if err != nil {
        log.Fatal(err)
    }
    defer response.Body.Close()

    fmt.Println(response.StatusCode)
    if _, err := io.Copy(io.Discard, response.Body); err != nil {
        log.Fatal(err)
    }
}

ঠিকনাটো নথিৰ উদাহৰণ। ইয়াৰ সলনি প্ৰকৃত HTTP প্ৰক্সিৰ IP আৰু প’ৰ্ট দিয়ক, যেনে HTTP প্ৰক্সি তালিকাৰ পৰা বাছি লোৱা এটা প্ৰক্সি। উদাহৰণে কেৱল Go-ৰ মানক লাইব্ৰেৰী ব্যৱহাৰ কৰে; এই HTTP প্ৰক্সি অনুৰোধৰ বাবে SOCKS পেকেজ বা সমগ্ৰ প্ৰক্ৰিয়াৰ পৰিৱেশ চলকৰ প্ৰয়োজন নাই।

DefaultTransport পোনে পোনে কিয় নসলাব?

ডিফল্ট transport ভাগ-বতৰা কৰি ব্যৱহাৰ কৰা হয়। ইয়াক সলনি কৰিলে আপোনাৰ প্ৰক্সি নিবিচৰা কোডৰ আচৰণো সলনি হ’ব পাৰে। অনুৰোধে ব্যৱহাৰ কৰি থকা সময়ত সলনি কৰিলে এৰাই চলিব পৰা সমকালীনতাৰ সমস্যাও হয়। পৃথক transport-এ পথটোক এই ক্লায়েণ্টৰ কনফিগাৰেশ্যনৰ অংশ কৰে।

http.ProxyURL-এ সদায় দিয়া URL বাছি লোৱা নিৰ্বাচক ঘূৰাই দিয়ে। ই ডিফল্ট পৰিৱেশ নিৰ্বাচকৰ পৰা পৃথক; সেইটোৱে প্ৰক্সি চলক আৰু বাইপাছ নিয়ম বিবেচনা কৰে। HTTP তালিকাৰ এটা নিৰ্দিষ্ট প্ৰৱিষ্টি পৰীক্ষা কৰিব খুজিলে স্পষ্ট নিৰ্বাচকে এই অনিশ্চয়তা আঁতৰায়।

সঁহাৰি বন্ধ কৰক আৰু ক্লায়েণ্ট পুনৰ ব্যৱহাৰ কৰক

উদাহৰণে সঁহাৰিৰ বডি সম্পূৰ্ণ পঢ়ি বন্ধ কৰে। শেষলৈ পঢ়িলে transport-এ সম্ভৱ হ’লে সংযোগ পুনৰ ব্যৱহাৰ কৰিব পাৰে। একে প্ৰক্সিৰে কেইবাটাও অনুৰোধ কৰা প্ৰগ্ৰামত প্ৰতিবাৰ নতুন জোৰা নবনাই ক্লায়েণ্ট আৰু transport ৰাখক।

ক্লায়েণ্টৰ সময়সীমাই কেৱল ছকেট খোলা নহয়, সঁহাৰিৰ বডি পঢ়াসহ অনুৰোধৰ জীৱনচক্ৰও সীমিত কৰে। Get ঘূৰি অহাৰ পিছতো পঢ়াৰ ত্ৰুটি চম্ভালিব লাগে। 403-ৰ দৰে স্থিতি Go transport-ৰ ত্ৰুটি নহয়, সেয়ে StatusCode আৰু err পৃথকে চাওক।

সম্পৰ্কিত প্ৰবন্ধ