ghttp.Client

  1. 我们可以使用NewClient创建一个自定义的HTTP客户端对象Client,随后可以使用该对象执行请求,该对象底层使用了连接池设计,因此没有Close关闭方法。
  2. 客户端提供了一系列以HTTP Method命名的方法,调用这些方法将会发起对应的HTTP Method请求。常用的方法当然是GetPost方法,同时DoRequest是核心的请求方法,用户可以调用该方法实现自定义的HTTP Method发送请求。
  3. *Bytes方法用于获得服务端返回的二进制数据,如果请求失败返回nil;方法用于请求获得字符串结果数据,如果请求失败返回空字符串;Set*方法用于Client的参数设置。
  4. 可以看到,客户端的请求参数的数据参数data数据类型为interface{}类型,也就是说可以传递任意的数据类型,常见的参数数据类型为string/map,如果参数为map类型,参数值将会被自动urlencode编码。

ghttp.ClientResponse

  1. func (r *ClientResponse) GetCookie(key string) string
  2. func (r *ClientResponse) ReadAll() []byte
  3. func (r *ClientResponse) Close()

一些重要说明

  1. ghttp客户端默认关闭了KeepAlive功能以及对服务端TLS证书的校验功能,如果需要启用可自定义客户端的Transport属性。
  2. 连接池参数设定、连接代理设置这些高级功能也可以通过自定义客户端的Transport属性实现,该数据继承于标准库的http.Transport对象。
  3. Post/PostBytes/PostContent方法提交的请求类型(Content-Type)默认为application/x-www-form-urlencoded,当data参数为JSON类型时,将会被自动识别此时请求的类型为application/json