GoFrame
框架的客户端支持便捷的链式操作,常用方法如下:
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
方法用于设置当前请求超时时间。
Cookie
方法用于设置当前请求的自定义Cookie
信息。
Header*
方法用于设置当前请求的自定义Header
信息。
Content*
方法用于设置当前请求的Content-Type
信息,并且支持根据该信息自动检查提交参数并自动编码。
BasicAuth
方法用于设置HTTP Basic Auth
校验信息。
Retry
方法用于设置请求失败时重连次数和重连间隔。
Proxy
方法用于设置http
访问代理。
RedirectLimit
方法用于限制重定向跳转次数。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",
})
g.Client().SetCookie("sessionid", "MNV5432PIY76").GetContent(ctx, "http://user.svc/v1/user/info/1")
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")
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",
})
该请求将会将Content-Type
设置为application/json
,并且将提交参数自动编码为Json
:
{"uid":1,"sku_id":10000,"amount":19.99,"create_time":"2020-03-26 12:00:00"}
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",
})
该请求将会将Content-Type
设置为application/xml
,并且将提交参数自动编码为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>
FastAPI 提供了简单易用,但功能强大的依赖注入系统。这个依赖系统设计的简单易用,可以让开发人员轻松地把组件集成至FastAPI。...
假设您在某个域中拥有后端API。并且您在另一个域或同一域的不同路径(或移动应用程序)中有一个前端。并且您希望有一种方法让前...
Django也提供允许在代码中完全控制数据库的API。手动指定数据库分配将优先于路由分配的数据库。手动为查询集选择数据库你可以在...
在Django项目中,一个常见需求是获取最终形式的URL,比如用于嵌入生成的内容中(视图和资源网址,给用户展示网址等)或用户服务...
所有 Django 支持的数据库后端都支持迁移,还有些支持表修改(通过 SchemaEditor 类实现)的第三方后端也支持。然而,有些数据库...
除前面说的基础请求/响应中间件模式外,你可以给基于类的中间件添加三种其他特殊方法:process_view()process_view(request, vie...
该会话目录在使用 JSONSerializer 时接受任何 json 序列化值或者当使用 PickleSerializer 时接受任何 picklable Pyt...
默认情况下,Django 为每个模型类添加了一个名为 objects 的 Manager。不过,若你想将 objects 用作字段名,或想使...