我是Golang的初學(xué)者,找不到一種直接的方法來(lái)實(shí)現(xiàn)這一點(diǎn)。我有一個(gè)用例,后端服務(wù)器必須使用代理與前端服務(wù)器通信,其中一些前端服務(wù)器僅支持https。我正在考慮使用兩個(gè)端口,一個(gè)作為HTTP轉(zhuǎn)發(fā),另一個(gè)作為HTTPS轉(zhuǎn)發(fā)。后端始終通過(guò) HTTP 與代理通信。有沒(méi)有更好的方法來(lái)做到這一點(diǎn)?我當(dāng)前的代理服務(wù)器沒(méi)有執(zhí)行 http 到 https 的轉(zhuǎn)換。它仍然使用HTTP,我不知道為什么? egressClient := &http.Client{ Transport: &http.Transport{ TLSClientConfig: &tls.Config{ InsecureSkipVerify: true, }, }, } html, err := egressClient.Transport.RoundTrip(r) if err != nil { log.Fatal(err) } website, err := ioutil.ReadAll(html.Body) if err != nil { log.Fatal(err) } html.Body.Close() log.Print(string(website))其中 是從后端獲取的 HTTP 請(qǐng)求。我必須將 r 作為 HTTPS 請(qǐng)求轉(zhuǎn)發(fā)。r
2 回答
HUH函數(shù)
TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超4個(gè)贊
通過(guò)設(shè)置@leaf bebop在評(píng)論中建議的bebop已經(jīng)解決了這個(gè)問(wèn)題。將方案設(shè)置為 HTTPS 后,請(qǐng)求現(xiàn)在將作為 HTTPS 發(fā)送。r.URL.Scheme = "https"
有用的參考資料:
https://posener.github.io/http2/由@Amrendra Yadav,HTTP / 2 Cleartext(H2C)客戶端和How to Play Go Lang with HTTP建議
慕俠2389804
TA貢獻(xiàn)1719條經(jīng)驗(yàn) 獲得超6個(gè)贊
我認(rèn)為這個(gè)博客解釋了很多關(guān)于golang中的http和https。你可以通過(guò)這個(gè):https://posener.github.io/http2/
- 2 回答
- 0 關(guān)注
- 239 瀏覽
添加回答
舉報(bào)
0/150
提交
取消
