Seachfhreastalaí ar leith do chliant HTTP in Go
Clónáil iompar réamhshocraithe Go, socraigh ProxyURL don IP roghnaithe agus seachain iompar seachfhreastalaí cliant eile a athrú.
Roghnaíonn iompar chliant HTTP in Go an seachfhreastalaí. Clónáil an t-iompar caighdeánach sula n-athraíonn tú é ionas go gcoinníonn úsáideoirí eile an chliaint réamhshocraithe a ródú reatha.
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)
}
}
Seoladh samplach don doiciméadú atá ann. Cuir fíor-IP agus port seachfhreastalaí HTTP ina áit, amhail iarrthóir ón liosta seachfhreastalaithe HTTP. Ní úsáideann an sampla ach leabharlann chaighdeánach Go; ní gá pacáiste SOCKS ná athróg timpeallachta don phróiseas ar fad don iarratas seachfhreastalaí HTTP seo.
Cén fáth gan DefaultTransport a athrú go díreach?
Tá an t-iompar réamhshocraithe comhroinnte. Féadann é a athrú dul i bhfeidhm ar chód nár iarr do sheachfhreastalaí riamh, agus cruthaíonn athrú agus iarratais á úsáid fadhbanna comhthráthachta inseachanta. Fágann iompar tiomnaithe an bealach mar chuid de chumraíocht an chliaint seo.
Tugann http.ProxyURL roghnóir ar ais a roghnaíonn an URL tugtha i gcónaí. Tá sé difriúil ón roghnóir timpeallachta réamhshocraithe a chuireann athróga seachfhreastalaí agus rialacha seachbhóthair san áireamh. Más mian leat iontráil áirithe amháin ón liosta HTTP a thástáil, baintear an fhoinse débhríochta sin leis an roghnóir follasach.
Dún an freagra agus athúsáid an cliant
Léann an sampla corp iomlán an fhreagra agus dúnann sé é. Cabhraíonn léamh go deireadh leis an iompar ceangal a athúsáid nuair is féidir. I gclár a dhéanann roinnt iarratas tríd an seachfhreastalaí céanna, coinnigh an cliant agus an t-iompar seachas péire nua a chruthú do gach iarratas.
Clúdaíonn teorainn ama an chliaint níos mó ná oscailt an tsoicéid; cuireann sí teorainn le saolré an iarratais freisin, léamh chorp an fhreagra san áireamh. Ní mór earráidí léitheoireachta a láimhseáil tar éis do Get filleadh fós. Ní earráid iompair Go é stádas amhail 403, mar sin scrúdaigh StatusCode ar leithligh ó err.