golang-http 请求---设置header与直接发
背景
现在各种软件到处都是,写代码难免有时候需要http 调用其他的接口。
其实这个东西还挺常用,虽然很简单,但是写的时候 又忘,就像是提笔忘字,索性总结一下吧。
不需要设置header属性的http 请求
那就直接发,简单快捷不拖沓。
http GET请求
resp, err := http.Get("http://abced.com/" + "/user/false/lsj")
if err != nil {
t.Log("query cluster failed", err.Error())
t.FailNow()
}
defer resp.Body.Close()
var serviceResp ServiceResp
respByte, _ := ioutil.ReadAll(resp.Body)
// 读出body之后,就干什么干什么了,下同。
http POST请求
// 在别处定义
info := model.User{
Desc: "test UserInfo",
UserId: "lsj",
TopicName: "test",
ClusterName: "test",
Type: 1,
}
byte, _ := json.Marshal(info)
resp, err := http.Post("http://abced.com/" + "/user/save", "application/json", strings.NewReader(string(byte)))
if err != nil {
t.Log("query info failed", err.Error())
t.FailNow()
}
defer resp.Body.Close()
var serviceResp ServiceResp
respByte, _ := ioutil.ReadAll(resp.Body)
......
需要设置header属性的http 请求
那就new 一个 request,再设置其header 就好了
设置header 的GET请求
req, _ := http.NewRequest("GET", "http://abced.com/" + "/user/false/lsj", nil)
// 比如说设置个token
req.Header.Set("token", "d8cdcf8427e")
// 再设置个json
req.Header.Set("Content-Type","application/json")
resp, err := (&http.Client{}).Do(req)
//resp, err := http.Get(serviceUrl + "/topic/query/false/lsj")
if err != nil {
t.Log("query topic failed", err.Error())
t.FailNow()
}
defer resp.Body.Close()
var serviceResp ServiceResp
respByte, _ := ioutil.ReadAll(resp.Body)
......
设置header 的POST请求
// 在别处定义
info := model.User{
Desc: "test UserInfo",
UserId: "lsj",
TopicName: "test",
ClusterName: "test",
Type: 1,
}
byte, _ := json.Marshal(info)
req, _ := http.NewRequest("POST", "http://abced.com/" + "/user/false/lsj", strings.NewReader(string(byte)))
req.Header.Set("token", "00998ecf8427e")
resp, err := (&http.Client{}).Do(req)
if err != nil {
t.Log("save topic failed", err.Error())
t.FailNow()
}
defer resp.Body.Close()
var serviceResp ServiceResp
respByte, _ := ioutil.ReadAll(resp.Body)
......
golang-http 请求---设置header与直接发的更多相关文章
- Spring 使用 feign时设置header信息
最近使用 SpringBoot 项目,把一些 http 请求转为 使用 feign方式.但是遇到一个问题:个别请求是要设置header的. 于是,查看官方文档和博客,大致推荐两种方式.也可能是我没看明 ...
- 原生js实现文件下载并设置请求头header
原生js实现文件下载并设置请求头header const token="自行定义";//如果有 /** * 向指定路径发送下载请求 * @param{String} url 请求路 ...
- HTTP 请求头 Header
HTTP 请求头 Header HTTP请求头概述 (HttpServletRequest) HTTP客户程序(例如浏览器),向服务器发送请求的时候必须指明请求类型(一般是GET或者POST或者HEA ...
- IOS NSURLRequest 设置 Header
https://my.oschina.net/wolx/blog/406092 工程中的请求,需要设置Header,请求令牌才访问,NSURLRequest 请求没有直接设置header 的方法,需要 ...
- jmetter的http请求设置
1.设置 cookie 2.设置header 3.login 4.post请求 5.get请求
- curl get请求添加header头信息
function get($url) { $ch = curl_init(); curl_setopt($ch, CURLOPT_HTTPGET, true); curl_setopt($ch, CU ...
- {Django基础七之Ajax} 一 Ajax简介 二 Ajax使用 三 Ajax请求设置csrf_token 四 关于json 五 补充一个SweetAlert插件(了解)
Django基础七之Ajax 本节目录 一 Ajax简介 二 Ajax使用 三 Ajax请求设置csrf_token 四 关于json 五 补充一个SweetAlert插件(了解) 一 Ajax简介 ...
- django系列6--Ajax04 请求设置(设置csrf_token)
Ajax请求设置csrf_token 官方文档 csrf_token: https://docs.djangoproject.com/en/1.11/ref/csrf/ CSRF 跨站请求攻击,简单地 ...
- 解决AJAX跨域:1、利用JSONP;2、JS设置Header
一.利用JSONP: 首先来看看在页面中如何使用jQuery的ajax解决跨域问题的简单版: $(document).ready(function(){ var url='http://localho ...
随机推荐
- 【MYSQL】mysql大数据量分页性能优化
转载地址: http://www.cnblogs.com/lpfuture/p/5772055.html https://www.cnblogs.com/shiwenhu/p/5757250.html ...
- java写出PDF
1\包 <dependency> <groupId>com.itextpdf</groupId> <artifactId>itextpdf</ar ...
- laravel-admin(自定义表单与验证)
场景: 很多时候,由于我们业务场景比较特殊,需要自定义表单,然后框架给我提供了对应表单组建! 案列:以创建一个字段为列 1.在控制器对应的方法中调用表单组建创建表单 public function c ...
- hdoj2036 改革春风吹满地——叉积
利用向量积(叉积)计算三角形的面积和多边形的面积 关于叉积计算三角形面积和多边形面积 Problem Description " 改革春风吹满地, 不会AC没关系; 实在不行回老家, 还有一 ...
- 向Rocket.Chat推送消息
Rocket.Chat推送消息 Rocket.Chat是一个开源实时通讯平台, 支持Windows, Mac OS, Linux. 支持聊天, 文件上传, 视频通话, 语音通话功能. 向Rocket. ...
- python爬虫的一个常见简单js反爬
python爬虫的一个常见简单js反爬 我们在写爬虫是遇到最多的应该就是js反爬了,今天分享一个比较常见的js反爬,这个我已经在多个网站上见到过了. 我把js反爬分为参数由js加密生成和js生成coo ...
- 你确定你会写 Dockerfile 吗?
如今 GitHub 仓库中已经包含了成千上万的 Dockerfile,但并不是所有的 Dockerfile 都是高效的.本文将从五个方面来介绍 Dockerfile 的最佳实践,以此来帮助大家编写更优 ...
- 把 python 程序打包成 egg 或者 whl 安装包
原文出处:http://www.worldhello.net/2010/12/08/2178.html 本文略有改动 1.1 安装setuptools 首先要安装setuptools工具.Debian ...
- nginx 的信号量
参考文章:https://blog.51cto.com/5660061/2380428 nginx 中的信号量: TERM,INT 快速的结束应用程序 ,等同于 kill -9 pid QUIT 优 ...
- 异步编程之Async,Await和ConfigureAwait的关系
在.NET Framework 4.5中,async / await关键字已添加到该版本中,简化多线程操作,以使异步编程更易于使用.为了最大化利用资源而不挂起UI,你应该尽可能地尝试使用异步编程.虽然 ...