httpc简介
httpc这是一个发起http请求的客户端库。
它具有的特色包括:简单易用,易于扩展,支持链式调用,支持多种格式的处理等。
特别适合用来调用restful风格的接口。
项目地址
https://github.com/recallsong/httpc
下载
<代码>去github.com/recallsong/httpc 代码>
Api文档
查看在线Api文档
我们也可以利用godoc工具在本地查看api文档:
<代码> godoc http=: 9090 代码>
在浏览器中查看地址:
http://localhost: 9090/pkg/github.com/recallsong/httpc
快速入门
最简单的使用方式
<代码> var resp字符串//得到http://localhost/hello?name=RecallSong 错:=httpc.New .Path (“http://localhost”) (“hello”)。查询(“名字”,“RecallSong”) . get(及职责) 如果犯错!=nil { fmt.Println(职责)//以字符串方式获取响应的数据 其他}{ fmt.Println (err) }代码>
设置请求头和饼干等
<代码> var resp字符串 犯错:=httpc.New .Path (“http://localhost”) (“/hello”)。查询(“参数”,“价值”)。 标题(“到了头”、“HeaderValue”)。 AddCookie(和http。饼干{名称:“cookieName”,价值:“cookieValue”})。 身体(“身体数据”). post(及职责) 如果犯错!=nil { fmt.Println(职责)//以字符串方式获取响应的数据 其他}{ fmt.Println (err) }代码>
发送和接收json格式的数据
使用地图传递数据
<代码>身体:{}{=map [string]接口 “名称”:“RecallSong”, “年龄”:18, } var resp map [string]接口{}//根据请求的内容类型自动对数据进行转换 错:=httpc.New (“http://localhost”) .Path (json)。 ContentType (httpc.TypeApplicationJson)。 身体(身体)。//身体转变为{“名称”:“RecallSong”,“年龄”:18} 帖子(及职责)//根据响应中的内容类型,将返回的数据解析到resp中 fmt。Println(呃,职责)//如果请求或响应没有指定内容类型,或是不正确,也可以强制指定转换格式类型 呃=httpc.New (“http://localhost”) .Path (json)。 身体(身体,httpc.TypeApplicationJson)。//身体转变为{“名称”:“RecallSong”,“年龄”:18} 帖子(及职责,httpc.TypeApplicationJson)//将返回的数据按json格式解析到映射中 fmt。Println(呃,resp) 代码>
使用结构体传递数据
<代码> struct类型人{ 名称字符串的json:“名字” 年龄int的json:“年龄” } 身体:=人{名称:“RecallSong”,年龄:18岁} var职责的人 错:=httpc.New (“http://localhost”) .Path (json)。 身体(身体,httpc.TypeApplicationJson)。 帖子(httpc.TypeApplicationJson及职责) fmt。Println(呃,resp) 代码>
发送和接收xml格式的数据
<代码> struct类型人{ 名称字符串的xml:“名字” 年龄int的xml:“年龄” } 身体:=人{名称:“RecallSong”,年龄:18岁} var职责的人 错:=httpc.New .Path (“http://localhost”) (“xml”)。 身体(身体,httpc.TypeApplicationXml)。//数据转变为xml格式 帖子(httpc.TypeApplicationXml及职责) fmt。Println(呃,resp) 代码>
发送表单参数
使用结构体发送
<代码> sbody:=struct { 名称字符串的形式:“名字” 年龄int的形式:“年龄” } { 名称:“RecallSong”, 年龄:18岁 } var resp字符串 犯错:=httpc.New .Path (“http://localhost”)(“回声”)。 身体(sbody httpc.TypeApplicationForm)。//将结构体转变格为形式式的数据体 帖子(及职责) fmt。Println(呃,resp) 代码>
使用地图发送
<代码> mbody: {} {=map [string]接口 “名称”:“RecallSong”, “年龄”:19日 } var resp字符串 犯错:=httpc.New .Path (“http://localhost”)(“回声”)。 身体(mbody httpc.TypeApplicationForm)。//将地图变格为形式式的数据体 帖子(及职责) fmt。Println(呃,resp) 代码>
使用url.Values发送
<代码> ubody:=url.Values {} ubody。集(“名字”,“RecallSong”) ubody。集(“年龄”、“20”) var resp字符串 犯错:=httpc.New .Path (“http://localhost”)(“回声”)。 身体(ubody)。//将url.Values类型转变格形式式的数据体 帖子(及职责) fmt。Println(呃,resp)Golang的一个简单实用的http客户端库httpc