日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

request重定向_golang不想http自动处理重定向的解决方案

發布時間:2023/12/9 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 request重定向_golang不想http自动处理重定向的解决方案 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

????有時候發送http請求不想讓庫自動幫忙處理重定向,庫里面默認的是會把所有重定向都完成一遍,結果就是最后一個沒有重定向的請求的結果。因此需要一種方案直接獲取首次訪問的結果,不走重定向。go的http庫里面是使用如下代碼檢查重定向的,以前我傻傻的修改源碼讓下面這段代碼直接返回,這樣需要重新編譯go自帶的庫,后來發現更簡單的方案。

var shouldRedirect boolredirectMethod, shouldRedirect, includeBody = redirectBehavior(req.Method, resp, reqs[0])if !shouldRedirect { return resp, nil}

解決方案

????下面代碼可以驗證自動處理重定向,以及不走重定向的方案。

package main import ("io/ioutil""log""net/http""time") func main() {go server()time.Sleep(time.Second)mUrl := "http://127.0.0.1:12345/post"{ // 常規方法req, err := http.NewRequest(http.MethodPost, mUrl, nil)if err != nil {log.Fatal(err)}resp, err := http.DefaultClient.Do(req)if resp != nil {defer resp.Body.Close()}if err != nil {log.Fatal(err)}byt, err := ioutil.ReadAll(resp.Body)if err != nil {log.Fatal(err)}log.Println(resp.StatusCode, "|", string(byt[:128]))} { // 去掉自動處理重定向req, err := http.NewRequest(http.MethodPost, mUrl, nil)if err != nil {log.Fatal(err)}resp, err := http.DefaultTransport.RoundTrip(req)if resp != nil {defer resp.Body.Close()}if err != nil {log.Fatal(err)}byt, err := ioutil.ReadAll(resp.Body)if err != nil {log.Fatal(err)}log.Println(resp.StatusCode, "|", string(byt[:128]))}} // 下面開啟一個服務,重定向到百度func server() {http.HandleFunc("/post", mPost)http.ListenAndServe(":12345", nil)} func mPost(w http.ResponseWriter, r *http.Request) {http.Redirect(w, r, "http://www.baidu.com", http.StatusFound)w.Write([]byte(time.Now().String()))}

結論

????如下的第一個請求是直接返回百度的網頁,及重定向以后的內容。第二個請求直接返回第一個302重定向的內容。

2020/10/14 13:11:56 200 |
2020/10/14 13:11:56 302 | 2020-10-14 13:11:56.6559382 +0800 CST m=+1.429170501

總結

以上是生活随笔為你收集整理的request重定向_golang不想http自动处理重定向的解决方案的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。