GoFrame HTTPClient-鏈?zhǔn)讲僮?/h1>

2022-04-14 10:52 更新

鏈?zhǔn)讲僮?

?GoFrame?框架的客戶端支持便捷的鏈?zhǔn)讲僮?,常用方法如下?/p>

func (c *Client) Timeout(t time.Duration) *Client
func (c *Client) Cookie(m map[string]string) *Client
func (c *Client) Header(m map[string]string) *Client
func (c *Client) HeaderRaw(headers string) *Client
func (c *Client) ContentType(contentType string) *Client
func (c *Client) ContentJson() *Client
func (c *Client) ContentXml() *Client
func (c *Client) BasicAuth(user, pass string) *Client
func (c *Client) Retry(retryCount int, retryInterval time.Duration) *Client
func (c *Client) Prefix(prefix string) *Client
func (c *Client) Proxy(proxyURL string) *Client
func (c *Client) RedirectLimit(redirectLimit int) *Client
func (c *Client) Dump(dump ...bool) *Client
func (c *Client) Use(handlers ...HandlerFunc) *Client

簡要說明:

  • ?Timeout?方法用于設(shè)置當(dāng)前請(qǐng)求超時(shí)時(shí)間。
  • ?Cookie?方法用于設(shè)置當(dāng)前請(qǐng)求的自定義?Cookie?信息。
  • ?Header*?方法用于設(shè)置當(dāng)前請(qǐng)求的自定義?Header?信息。
  • ?Content*?方法用于設(shè)置當(dāng)前請(qǐng)求的?Content-Type?信息,并且支持根據(jù)該信息自動(dòng)檢查提交參數(shù)并自動(dòng)編碼。
  • ?BasicAuth?方法用于設(shè)置?HTTP Basic Auth?校驗(yàn)信息。
  • ?Retry?方法用于設(shè)置請(qǐng)求失敗時(shí)重連次數(shù)和重連間隔。
  • ?Proxy?方法用于設(shè)置?http?訪問代理。
  • ?RedirectLimit?方法用于限制重定向跳轉(zhuǎn)次數(shù)。

使用示例

示例1,請(qǐng)求超時(shí)控制

g.Client().Timeout(3*time.Second).GetContent(ctx, "http://user.svc/v1/user/info/1")
g.Client().Timeout(10*time.Second).PostContent(ctx, "http://order.svc/v1/order/create", g.Map{
    "uid"         : 1,
    "sku_id"      : 10000,
    "amount"      : 19.99,
    "create_time" : "2020-03-26 12:00:00",
})

示例2,自定義Cookie

g.Client().SetCookie("sessionid", "MNV5432PIY76").GetContent(ctx, "http://user.svc/v1/user/info/1")

示例3,自定義Header

g.Client().SetHeader("RequestId", "XVF654RT98UJNMN641V06Y").GetContent(ctx, "http://user.svc/v1/user/info/1")
g.Client().HeaderRaw(`
Referer: https://goframe.org/
User-Agent: MyTesyClient
`).GetContent(ctx, "http://user.svc/v1/user/info")

示例4,提交Json請(qǐng)求

g.Client().ContentJson().PostContent(ctx, "http://order.svc/v1/order/create", g.Map{
    "uid"         : 1,
    "sku_id"      : 10000,
    "amount"      : 19.99,
    "create_time" : "2020-03-26 12:00:00",
})

該請(qǐng)求將會(huì)將?Content-Type?設(shè)置為?application/json?,并且將提交參數(shù)自動(dòng)編碼為?Json?:

{"uid":1,"sku_id":10000,"amount":19.99,"create_time":"2020-03-26 12:00:00"}

示例5,提交Xml請(qǐng)求

g.Client().ContentXml().PostContent(ctx, "http://order.svc/v1/order/create", g.Map{
    "uid"         : 1,
    "sku_id"      : 10000,
    "amount"      : 19.99,
    "create_time" : "2020-03-26 12:00:00",
})

該請(qǐng)求將會(huì)將?Content-Type?設(shè)置為?application/xml?,并且將提交參數(shù)自動(dòng)編碼為?Xml?:

<doc><amount>19.99</amount><create_time>2020-03-26 12:00:00</create_time><sku_id>10000</sku_id><uid>1</uid></doc>


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)