Go-ის სტანდარტული DefaultTransport Proxy-ს აყენებს ProxyFromEnvironment-ზე. ცალკე აგებულ &http.Transport{}-ს აქვს nil Proxy ფუნქცია, რომელიც არცერთ პროქსის არ ირჩევს.

ეს განსხვავება შეიძლება გამოჩნდეს მას შემდეგ, რაც ტრანსპორტი დაემატა მხოლოდ დროის ლიმიტის შესაცვლელად. სანამ სტანდარტული ნაგულისხმევი ჯერ კიდევ დაყენებულია, დააკლონეთ იგი და შეცვალეთ საჭირო ველი:

transport := http.DefaultTransport.(*http.Transport).Clone()
transport.ResponseHeaderTimeout = 15 * time.Second

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

კლონი ინარჩუნებს გარემოს პროქსის არჩევანს და ტრანსპორტის სხვა ნაგულისხმევ პარამეტრებს. ტიპის შემოწმება ვარაუდობს, რომ აპლიკაციამ DefaultTransport არ შეცვალა სხვა RoundTripper-ით.

განზრახ ნულიდან აგებული ტრანსპორტისთვის ცხადად დააყენეთ Proxy: http.ProxyFromEnvironment, როცა ეს მისი მარშრუტიზაციის პოლიტიკაა. ცხადი ProxyURL ფუნქცია გამოხატავს სხვა პოლიტიკას: ერთი არჩეული შუამავალი.

კონფიგურირეთ ტრანსპორტი მანამ, სანამ პარალელური მოთხოვნები გამოიყენებენ მას, შემდეგ ხელახლა გამოიყენეთ სამუშაო დატვირთვისთვის. საერთო ნაგულისხმევი ობიექტის შეცვლამ შეიძლება გავლენა მოახდინოს დაუკავშირებელ კლიენტებზე.

მორგებული TLS პარამეტრები ცალკეა. სერტიფიკატის შემოწმების გამორთვა არ არის საჭირო პროქსის აღმოჩენის შესანარჩუნებლად და ეს შეცვლის ყოველი შესაბამისი HTTPS მოთხოვნის უსაფრთხოებას.

დაკავშირებული სტატიები