<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # 客戶端請求 httplib 庫主要用來模擬客戶端發送 HTTP 請求,類似于 Curl 工具,支持 JQuery 類似的鏈式操作。使用起來相當的方便;通過如下方式進行安裝: go get github.com/astaxie/beego/httplib ## 如何使用 首先導入包 import ( "github.com/astaxie/beego/httplib" ) 然后初始化請求方法,返回對象 req := httplib.Get("http://beego.me/") 然后我們就可以獲取數據了 str, err := req.String() if err != nil { t.Fatal(err) } fmt.Println(str) ## 支持的方法對象 httplib 包里面支持如下的方法返回 request 對象: - Get(url string) - Post(url string) - Put(url string) - Delete(url string) - Head(url string) ## 支持 debug 輸出 可以根據上面五個方法返回的對象進行調試信息的輸出: req.Debug(true) 這樣就可以看到請求數據的詳細輸出 httplib.Get("http://beego.me/").Debug(true).Response() //輸出數據如下 GET / HTTP/0.0 Host: beego.me User-Agent: beegoServer ## 支持 HTTPS 請求 如果請求的網站是 HTTPS 的,那么我們就需要設置 client 的 TLS 信息,如下所示: req.SetTLSClientConfig(&tls.Config{InsecureSkipVerify: true}) 關于如何設置這些信息請訪問: http://gowalker.org/crypto/tls#Config ## 支持超時設置 通過如下接口可以設置請求的超時時間和數據讀取時間: req.SetTimeout(connectTimeout, readWriteTimeout) 以上方法都是針對 request 對象的,所以你第一步必須是返回 request 對象,然后鏈式操作,類似這樣的代碼: httplib.Get("http://beego.me/").SetTimeout(100 * time.Second, 30 * time.Second).Response() ## 設置請求參數 對于 Put 或者 Post 請求,需要發送參數,那么可以通過 Param 發送 k/v 數據,如下所示: req := httplib.Post("http://beego.me/") req.Param("username","astaxie") req.Param("password","123456") ## 發送大片的數據 有時候需要上傳文件之類的模擬,那么如何發送這個文件數據呢?可以通過 Body 函數來操作,舉例如下: req := httplib.Post("http://beego.me/") bt,err:=ioutil.ReadFile("hello.txt") if err!=nil{ log.Fatal("read file err:",err) } req.Body(bt) ## 設置 header 信息 除了請求參數之外,我們有些時候需要模擬一些頭信息,例如 Accept-Encoding:gzip,deflate,sdch Host:beego.me User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.57 Safari/537.36 可以通過 Header 函數來設置,如下所示: req := httplib.Post("http://beego.me/") req.Header("Accept-Encoding","gzip,deflate,sdch") req.Header("Host","beego.me") req.Header("User-Agent","Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.57 Safari/537.36") ## 設置 transport http請求的傳輸由`http.RoundTrip`承載,因此我們可以實現接口以實現鏈接的控制。通過設置,我們可以實現長連接,如下所示: var tp http.RoundTripper = &http.Transport{ DialContext: (&net.Dialer{ Timeout: 30 * time.Second, KeepAlive: 30 * time.Second, DualStack: true, }).DialContext, MaxIdleConns: 100, IdleConnTimeout: 90 * time.Second, ExpectContinueTimeout: 1 * time.Second, } req := httplib.Post("http://beego.me/") req.SetTransport(tp) ## httplib支持文件直接上傳接口 PostFile 第一個參數是 form 表單的字段名,第二個是需要發送的文件名或者文件路徑 ``` b:=httplib.Post("http://beego.me/") b.Param("username","astaxie") b.Param("password","123456") b.PostFile("uploadfile1", "httplib.pdf") b.PostFile("uploadfile2", "httplib.txt") str, err := b.String() if err != nil { t.Fatal(err) } ``` ## 獲取返回結果 上面這些都是在發送請求之前的設置,接下來我們開始發送請求,然后如何來獲取數據呢?主要有如下幾種方式: - 返回 Response 對象,`req.Response()` 方法 這個是 http.Response 對象,用戶可以自己讀取 body 的數據等。 - 返回 bytes,`req.Bytes()` 方法 直接返回請求 URL 返回的內容 - 返回 string,`req.String()` 方法 直接返回請求 URL 返回的內容 - 保存為文件,`req.ToFile(filename)` 方法 返回結果保存到文件名為 filename 的文件中 - 解析為 JSON 結構,`req.ToJSON(&result)` 方法 返回結構直接解析為 JSON 格式,解析到 result 對象中 - 解析為 XML 結構,`req.ToXml(&result)` 方法 返回結構直接解析為 XML 格式,解析到 result 對象中
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看