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