go http get 请求模板
2017-11-09 00:00
891 查看
摘要: 是个逐步完善的过程还在不断学习中
GO 原生htpp请求方式
API POST
API GET
GO net/httplib请求方式
https://godoc.org/github.com/toolkits/net/httplib
API GET
有需要的同学可以拿走
觉得有地方需要调整(新增、删除)可以留言
GO 原生htpp请求方式
API POST
import ( "fmt" "log" "net/http" "net/url" "bytes" "io/ioutil" "encoding/json" ) func SendAPIPOSTRequest(){ wardenapiurl := "http:/X.X.X.X:8080" resource := "metainfo/handle/" port := "X" data := url.Values{} data.Set("action_name","get_port_info") data.Set("port",port) u,_ := url.ParseRequestURI(wardenapiurl) u.Path = resource urlStr := u.String() client := &http.Client{} r,err := http.NewRequest("POST",urlStr,bytes.NewBufferString(data.Encode())) if err!=nil{ log.Printf("request %s err:%v",urlStr,err) return } //add header //r.Header.Add("Authorization", "auth_token=\"XXXXXXX\"") //r.Header.Add("Content-Type", "application/x-www-form-urlencoded") //r.Header.Add("Content-Length", strconv.Itoa(len(data.Encode()))) resp,err:=client.Do(r) if err != nil{ log.Printf("request %s err:%v",urlStr,err) return } //读取body ret,err := ioutil.ReadAll(resp.Body) if err != nil{ log.Printf("request readbody %s err:%v",urlStr,err) } resp.Body.Close() //解析json retmap := make(map[string]interface{}) json.Unmarshal(ret,&retmap) fmt.Println(retmap) }
API GET
func SendAPIGETRequest(){ wardenapiurl := "X.X.X.X:8080/?" port := "11240" data := url.Values{} data.Set("action_name","get_port_info") data.Set("port",port) urlStr := fmt.Sprintf("%s%s",wardenapiurl,data.Encode()) resp,err:=http.Get(urlStr) if err != nil{ log.Printf("request %s err:%v",urlStr,err) return } //读取body ret,err := ioutil.ReadAll(resp.Body) if err != nil{ log.Printf("request readbody %s err:%v",urlStr,err) } resp.Body.Close() fmt.Println(string(ret)) //解析json retmap := make(map[string]interface{}) json.Unmarshal(ret,&retmap) fmt.Println(retmap) }
GO net/httplib请求方式
https://godoc.org/github.com/toolkits/net/httplib
API GET
func HTTPGet(){ wardenapiurl := "X.X.X.X:8080/metainfo/handle/?" //传入参数 port := "11240" data := url.Values{} data.Set("action_name","get_port_info") data.Set("port",port) urlStr := fmt.Sprintf("%s%s",wardenapiurl,data.Encode()) //设置超时 //connectTimeout readWriteTimeout req := httplib.Get(urlStr).SetTimeout(5*time.Second, 30*time.Second) //传入token token, _ := json.Marshal(map[string]string{ "name": "X", "sig": "X", }) req.Header("Apitoken", string(token)) //解析json retmap := make(map[string]interface{}) err :=req.ToJson(&retmap) if err!=nil{ log.Println("parse fail") } fmt.Println(retmap) }
有需要的同学可以拿走
觉得有地方需要调整(新增、删除)可以留言
相关文章推荐
- go http.Get请求 http.Post请求 http.PostForm请求 Client 超时设置
- GO1.5实现简单的http并发请求,支持:GET、POST、HEAD、PUT
- Go语言中利用http发起Get和Post请求的方法示例
- 【Go】原生http get和post请求框架
- [GO]HTTP 请求实例(GET)以及设置代理
- go get 请求获取http body
- go的入门之路 http Get Post请求
- 关于HttpClient发送get请求自动处理302状态码
- HTTP协议中POST、GET、HEAD、PUT等请求方法以及一些常见错误(转载)
- 【转】C# 实现http协议GET、POST请求
- python实现的json数据以HTTP GET,POST,PUT,DELETE方式页面请求
- java发送http的get、post请求
- swift 网络请求 Get、Post HttpRequest For Swift language (iOS )
- c# http get请求与post请求实例
- Httpclient的Get请求和Post请求
- 【Angular】angular-HttpClient 与服务器通讯 Get Post Put Delete Http 拦截器 请求讲解
- HttpURLConnection的get和post请求实例
- Http的get和post请求简单应用
- java apache commons HttpClient发送get和post请求的学习整理
- post 与get 区别,为什么现在的HTTP通信中大多数请求还是使用get?