Βάλτε τις κεφαλίδες CONNECT της Go στο Transport
Στείλτε μια απαιτούμενη κεφαλίδα σε διακομιστή μεσολάβησης HTTP κατά το CONNECT χωρίς να την προσθέσετε στο αίτημα προορισμού.
Μια κεφαλίδα που προστίθεται στο http.Request.Header περιγράφει το αίτημα προορισμού. Όταν το HTTPS χρησιμοποιεί διακομιστή μεσολάβησης HTTP, το transport εκτελεί πρώτα CONNECT. Οι κεφαλίδες του αιτήματος προορισμού δεν είναι γενικό API ρύθμισης παραμέτρων για εκείνη την προηγούμενη ανταλλαγή.
Για μια στατική κεφαλίδα που απαιτεί ο διακομιστής μεσολάβησης, ρυθμίστε το ProxyConnectHeader του transport:
transport := &http.Transport{
Proxy: http.ProxyURL(proxyURL),
ProxyConnectHeader: http.Header{
"X-Proxy-Account": []string{"example-account"},
},
}Εδώ το proxyURL είναι η αναλυμένη διεύθυνση URL του τελικού σημείου. Η κεφαλίδα είναι ενδεικτική και χρήσιμη μόνο όταν ο πάροχος του διακομιστή μεσολάβησης ορίζει τέτοιο πεδίο.
Για μια τιμή που επιλέγεται ανά διακομιστή μεσολάβησης ή προορισμό, χρησιμοποιήστε το GetProxyConnectHeader. Η τεκμηριωμένη συνάρτηση επιστροφής λαμβάνει τη διεύθυνση URL του διακομιστή μεσολάβησης και τον στόχο CONNECT. Όταν αυτή η συνάρτηση δεν είναι nil, το στατικό πεδίο ProxyConnectHeader αγνοείται.
Κρατήστε τις τιμές στο προβλεπόμενο εύρος. Ένα σημάδι λογαριασμού μόνο για τον διακομιστή μεσολάβησης ανήκει στην ανταλλαγή με αυτόν· μια τιμή εξουσιοδότησης ιστοτόπου ανήκει στο αίτημα προορισμού. Αν μια συνάρτηση επιστροφής δεν μπορεί να παράγει την απαιτούμενη τιμή χειραψίας, επιστρέψτε το σφάλμα της αντί να στείλετε σιωπηλά ένα αίτημα με άλλη ρύθμιση.
Αυτές οι ρυθμίσεις προσαρμόζουν τον χειρισμό CONNECT. Δεν επινοούν προσαρμοσμένο πρωτόκολλο πιστοποίησης ούτε αλλάζουν την πολιτική πρόσβασης της υπηρεσίας μεσολάβησης.