httplib簡單使用
req := httplib.Get("http://beego.me/")
str, err := req.String()
if err != nil {
t.Fatal(err)
}
fmt.Println(str)
支持的請求方法
Get(url string)
Post(url string)
Put(url string)
Delete(url string)
Head(url string)
支持超時(shí)
req.SetTimeout(connectTimeout, readWriteTimeout)
httplib.Get("http://beego.me/").SetTimeout(100 * time.Second, 30 * time.Second)
設(shè)置請求參數(shù)
1. 方法一
req := httplib.Post("http://beego.me/")
req.Param("username","astaxie")
req.Param("password","123456")
2. 方法二
req := httplib.Post("http://127.0.0.1:9999")
req.JSONBody(map[string]interface{}{"jsonrpc":"2.0","method":"eth_blockNumber","id":83})
var js interface{}
req.ToJSON(&js)
fmt.Println(js)
3. 方法三 發(fā)送大片的數(shù)據(jù)
req := httplib.Post("http://beego.me/")
bt,err:=ioutil.ReadFile("hello.txt")
if err!=nil{
log.Fatal("read file err:",err)
}
req.Body(bt)
設(shè)置header信息
req := httplib.Post("http://beego.me/")
req.Header("Accept-Encoding","gzip,deflate,sdch")
req.Header("Host","beego.me")
直接上傳文件
PostFile 第一個(gè)參數(shù)是 form 表單的字段名,第二個(gè)是需要發(fā)送的文件名或者文件路徑
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)
}
獲取返回結(jié)果
1. 返回 Response 對象,req.Response() 方法
這個(gè)是 http.Response 對象,用戶可以自己讀取 body 的數(shù)據(jù)等。
2. 返回 bytes,req.Bytes() 方法
直接返回請求 URL 返回的內(nèi)容
3. 返回 string,req.String() 方法
直接返回請求 URL 返回的內(nèi)容
4. 保存為文件,req.ToFile(filename) 方法
返回結(jié)果保存到文件名為 filename 的文件中
5. 解析為 JSON 結(jié)構(gòu),req.ToJSON(&result) 方法
返回結(jié)構(gòu)直接解析為 JSON 格式,解析到 result 對象中
6. 解析為 XML 結(jié)構(gòu),req.ToXml(&result) 方法
返回結(jié)構(gòu)直接解析為 XML 格式,解析到 result 對象中