Menyediakan proksi dengan pengesahan untuk permintaan HTTP boleh mencabar, terutamanya apabila memasukkannya ke dalam kod pihak ketiga yang sedia ada. Artikel ini membincangkan isu khusus yang dihadapi semasa cuba menambah pengesahan proksi pada pangkalan kod sedia ada.
Pernyataan Masalah:
Coretan kod yang disediakan mewujudkan proksi HTTP tanpa pengesahan menggunakan objek pengangkutan dengan fungsi ProxyURL. Walau bagaimanapun, menambah pengepala Proxy-Authorization pada objek respons selepas permintaan POST gagal untuk mengesahkan proksi.
Penyelesaian:
Untuk menyelesaikan isu ini, nyatakan secara langsung URL proksi dengan bukti kelayakan pengesahan dalam objek pengangkutan.
// Create an HTTP client with proxy authentication client := &http.Client{ Transport: &http.Transport{ Proxy: http.ProxyURL(&url.URL{ Scheme: "http", User: url.UserPassword("username", "password"), Host: "proxy.com:8080", }), }, } // Use the client to make requests with proxy authentication resp, err := client.PostForm(method, params)
Sebagai alternatif, URL proksi juga boleh dihuraikan secara langsung.
// Parse the proxy URL proxyURL, _ := url.Parse("http://username:password@proxy.com:8080") // Create an HTTP client with proxy authentication client := &http.Client{ Transport: &http.Transport{ Proxy: http.ProxyURL(proxyURL), }, } // Use the client to make requests with proxy authentication resp, err := client.PostForm(method, params)
Pendekatan ini memastikan bukti kelayakan proksi dimasukkan ke dalam objek pengangkutan, membenarkan permintaan HTTP POST menggunakan proksi yang disahkan.
Atas ialah kandungan terperinci Bagaimana untuk Mengkonfigurasi Pengesahan Proksi HTTP dengan Betul dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!