2019-go-24

beego 模块化设计之httplib

httplib 库主要用来模拟客户端发送 HTTP 请求,类似于 Curl 工具,支持 JQuery 类似的链式操作。使用起来相当的方便;

有点像 requests模块

httplib 包里面支持如下的方法返回 request 对象:

  • Get(url string)
  • Post(url string)
  • Put(url string)
  • Delete(url string)
  • Head(url string)

发送文件

req := httplib.Post("http://beego.me/")
bt,err:=ioutil.ReadFile("hello.txt")
if err!=nil{
    log.Fatal("read file err:",err)
}
req.Body(bt)

文件直接上传接口

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 对象中