HTTP/2 Go نىڭ SOCKS يولى ئىچىگە ماس كېلىدۇ
ئۆلچەملىك HTTP توشۇغۇچنى كۆپەيتىڭ، SOCKS ۋاكالەتچىنى تاللاڭ ۋە ھەقىقەتەن كېڭىشىلگەن نىشان پروتوكولىنى تەكشۈرۈڭ.
SOCKS يولى بىر TCP ئۇلىنىشنى توشۇيدۇ. Go ئۇ يول ئارقىلىق نىشان بىلەن TLS قىلالايدۇ ۋە ئۇ يەردە HTTP/2 كېڭىشەلەيدۇ؛ SOCKS مۇلازىمېتىرى ئۆزى HTTP/2 سۆزلەشكە ئېھتىياجلىق ئەمەس.
Go نىڭ ئۆلچەملىك سۈكۈتتىكى توشۇغۇچىنى ساقلايدىغان پروگراممىدا، ئۇنىڭ سەپلىمىسىنى كۆپەيتىڭ ۋە ۋاكالەتچىنى تاللاڭ:
import (
"net/http"
"net/url"
"time"
)
proxyURL := &url.URL{
Scheme: "socks5",
Host: "proxy.example:1080",
}
transport := http.DefaultTransport.(*http.Transport).Clone()
transport.Proxy = http.ProxyURL(proxyURL)
client := &http.Client{
Transport: transport,
Timeout: 30 * time.Second,
}
ۋاكالەتچى ۋە نىشان ئوخشىمىغان قىممەت بولۇپ قالىدۇ. ۋاكالەتچى قىممىتى ئۈچۈن SOCKS5 ۋاكالەتچى تىزىملىكىدىن SOCKS5 ئاخىرلاشقۇچى نۇقتىنى تاللاڭ؛ HTTP/2 يەنىلا نىشان بىلەن كېڭىشىلىدۇ. client نى ئىشلىتىپ ھەقىقىي HTTPS مۇلازىمەت URL نى تەلەپ قىلىڭ، ئاندىن ئەپنىڭ نورمال ھايات دەۋرى ئارقىلىق جاۋاب گەۋدىسىنى تاقاڭ.
ئۆلچەملىك سۈكۈتتىكى توشۇغۇچ HTTP/2 نى قوللايدۇ. ئۇنى كۆپەيتىش بۇ سەپلىمىنى ساقلاپ، ۋاكالەتچى تاللاشنى ئۆزگەرتىشكە يول قويىدۇ. تىپ تەكشۈرۈش پروگرامما http.DefaultTransport نى باشقا RoundTripper بىلەن ئالماشتۇرمىغان دەپ پەرەز قىلىدۇ.
ئايرىم قۇرۇلغان توشۇغۇچ ئۈچۈن، ئۇنىڭ HTTP/2 سەپلىمىسىنى قايتا قاراپ چىقىڭ، بولۇپمۇ ئۆزگەرتىلگەن dial ياكى TLS ئىلمىكى بەرگەندە. Go ForceAttemptHTTP2 نى ۋە يېڭى نەشرلەردە بۇ تاللاشلار ئۈچۈن ئېنىق Protocols سەپلىمىسىنى ئاشكارىلايدۇ.
نىشان يەنىلا TLS كېڭىشىش ئارقىلىق HTTP/2 تەمىنلىشى كېرەك. نېمە ئىشلىتىلگەنلىكىنى كۆرۈش ئۈچۈن مۇۋەپپەقىيەتلىك جاۋابنىڭ Proto ياكى ProtoMajor قىممىتىنى تەكشۈرۈڭ. SOCKS ئارقىلىق مۇۋەپپەقىيەتلىك HTTPS تەلەپ ئۆزىلا كېڭىشىلگەن پروتوكولنىڭ HTTP/2 ئىكەنلىكىنى ئىسپاتلىمايدۇ.