Progsaidh fa leth do chliant HTTP ann an Go
Clònaich transport bunaiteach Go, suidhich ProxyURL airson an IP a thagh thu agus na atharraich giùlan phrogsaidhean chliantan eile.
’S e transport a’ chliant HTTP ann an Go a thaghas am progsaidh. Clònaich an transport àbhaisteach mus atharraich thu e gus an glèidh luchd-cleachdaidh eile a’ chliant bhunaiteach na slighean a th’ aca.
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)
}
}
’S e seòladh-eisimpleir airson sgrìobhainnean a tha seo. Cuir IP agus port fìor phrogsaidh HTTP na àite, mar thagraiche bhon liosta phrogsaidhean HTTP. Chan eil an eisimpleir a’ cleachdadh ach leabharlann àbhaisteach Go; chan eil feum air pasgan SOCKS no caochladair àrainneachd airson a’ phròiseis air fad airson an iarrtais phrogsaidh HTTP seo.
Carson nach atharraich thu DefaultTransport gu dìreach?
Tha an transport bunaiteach co-roinnte. Faodaidh atharrachadh buaidh a thoirt air còd nach do dh’iarr do phrogsaidh riamh, agus cruthaichidh atharrachaidhean fhad ’s a tha iarrtasan ga chleachdadh trioblaidean co-ama a ghabhadh seachnadh. Nì transport sònraichte an t-slighe na pàirt de rèiteachadh a’ chliant seo.
Tillidh http.ProxyURL taghadair a thaghas an URL a chaidh a thoirt dha an-còmhnaidh. Tha seo eadar-dhealaichte bhon taghadair àrainneachd bunaiteach a bheir aire do chaochladairean progsaidh agus riaghailtean seachnaidh. Ma tha thu airson aon innteart sònraichte den liosta HTTP a dhearbhadh, bheir an taghadair follaiseach air falbh an tùs mì-chinnt seo.
Dùin an fhreagairt agus ath-chleachd an cliant
Leughaidh an eisimpleir corp na freagairt gu lèir agus dùinidh e e. Cuidichidh leughadh gu deireadh an transport gus ceangal ath-chleachdadh nuair as urrainn dha. Ann am prògram le grunn iarrtasan tron aon phrogsaidh, glèidh an cliant agus an transport an àite paidhir ùr a chruthachadh airson gach iarrtas.
Tha crìoch-ama a’ chliant a’ còmhdach barrachd na fosgladh an t-socaid; tha i cuideachd a’ cuingealachadh cuairt-beatha an iarrtais, a’ gabhail a-steach leughadh corp na freagairt. Feumar mearachdan leughaidh a làimhseachadh fhathast an dèidh do Get tilleadh. Chan e mearachd transport Go a th’ ann an inbhe mar 403, mar sin sgrùd StatusCode air leth bho err.