Golang的一个简单实用的http客户端库httpc

  

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