新聞中心
HTTP客戶端
?GOFrame?框架提供了強(qiáng)大便捷易用的?HTTP?客戶端,由?gclient?組件實(shí)現(xiàn),對(duì)象創(chuàng)建可以通過?gclient.New()?包方法,也可以通過?g.Client()?方法調(diào)用。推薦使用?g.Client()?來便捷地創(chuàng)建?HTTP?客戶端對(duì)象。

成都創(chuàng)新互聯(lián)公司專注于企業(yè)全網(wǎng)整合營(yíng)銷推廣、網(wǎng)站重做改版、延平網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5開發(fā)、商城開發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)營(yíng)銷網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為延平等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
方法列表: https://pkg.go.dev/github.com/gogf/gf/v2/net/gclient
簡(jiǎn)要說明:
- 我們可以使用?
New?創(chuàng)建一個(gè)自定義的?HTTP?客戶端對(duì)象?Client?,隨后可以使用該對(duì)象執(zhí)行請(qǐng)求,該對(duì)象底層使用了連接池設(shè)計(jì),因此沒有?Close?關(guān)閉方法。?HTTP?客戶端對(duì)象也可以通過?g.Client()?快捷方法創(chuàng)建。 - 客戶端提供了一系列以?
HTTP Method?命名的方法,調(diào)用這些方法將會(huì)發(fā)起對(duì)應(yīng)的?HTTP Method?請(qǐng)求。常用的方法是?Get?和?Post?方法,同時(shí)?DoRequest?是核心的請(qǐng)求方法,用戶可以調(diào)用該方法實(shí)現(xiàn)自定義的?HTTP Method?發(fā)送請(qǐng)求。 - 請(qǐng)求返回結(jié)果為?
*ClientResponse?對(duì)象,可以通過該結(jié)果對(duì)象獲取對(duì)應(yīng)的返回結(jié)果,通過?ReadAll?/?ReadAllString?方法可以獲得返回的內(nèi)容,該對(duì)象在使用完畢后需要通過?Close?方法關(guān)閉,防止內(nèi)存溢出。 - ?
*Bytes?方法用于獲得服務(wù)端返回的二進(jìn)制數(shù)據(jù),如果請(qǐng)求失敗返回?nil?;?*Content?方法用于請(qǐng)求獲得字符串結(jié)果數(shù)據(jù),如果請(qǐng)求失敗返回空字符串;?Set*?方法用于?Client?的參數(shù)設(shè)置。 - ?
*Var?方法直接請(qǐng)求并獲取?HTTP?接口結(jié)果為泛型類型便于轉(zhuǎn)換。如果請(qǐng)求失敗或者請(qǐng)求結(jié)果為空,會(huì)返回一個(gè)空的?g.Var?泛型對(duì)象,不影響轉(zhuǎn)換方法調(diào)用。 - 可以看到,客戶端的請(qǐng)求參數(shù)的數(shù)據(jù)參數(shù)?
data?數(shù)據(jù)類型為?interface{}?類型,也就是說可以傳遞任意的數(shù)據(jù)類型,常見的參數(shù)數(shù)據(jù)類型為?string?/?map?,如果參數(shù)為?map?類型,參數(shù)值將會(huì)被自動(dòng)?urlencode?編碼。
請(qǐng)使用給定的方法創(chuàng)建?Client?對(duì)象,而不要使用?new(ghttp.Client)?或者?&ghttp.Client{}?創(chuàng)建客戶端對(duì)象。
HTTP返回對(duì)象
?gclient.Response?為?HTTP?對(duì)應(yīng)請(qǐng)求的返回結(jié)果對(duì)象,該對(duì)象繼承于?http.Response?,可以使用?http.Response?的所有方法。在此基礎(chǔ)之上增加了以下幾個(gè)方法:
func (r *Response) GetCookie(key string) string
func (r *Response) GetCookieMap() map[string]string
func (r *Response) Raw() string
func (r *Response) RawDump()
func (r *Response) RawRequest() string
func (r *Response) RawResponse() string
func (r *Response) ReadAll() []byte
func (r *Response) ReadAllString() string
func (r *Response) Close() error這里也要提醒的是,?Response?需要手動(dòng)調(diào)用?Close?方法關(guān)閉,也就是說,不管你使用不使用返回的?Response?對(duì)象,你都需要將該返回對(duì)象賦值給一個(gè)變量,并且手動(dòng)調(diào)用其?Close?方法進(jìn)行關(guān)閉(往往使用?defer r.Close()?),否則會(huì)造成文件句柄溢出、內(nèi)存溢出。
一些重要說明
- ?
ghttp?客戶端默認(rèn)關(guān)閉了?KeepAlive?功能以及對(duì)服務(wù)端?TLS?證書的校驗(yàn)功能,如果需要啟用可自定義客戶端的?Transport?屬性。 - 連接池參數(shù)設(shè)定、連接代理設(shè)置這些高級(jí)功能也可以通過自定義客戶端的?
Transport?屬性實(shí)現(xiàn),該數(shù)據(jù)繼承于標(biāo)準(zhǔn)庫(kù)的?http.Transport?對(duì)象。
網(wǎng)頁名稱:創(chuàng)新互聯(lián)GoFrame教程:GoFrameHTTPClient-基本介紹
當(dāng)前地址:http://m.5511xx.com/article/coisdoj.html


咨詢
建站咨詢
