背景

现在各种软件到处都是,写代码难免有时候需要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与直接发的更多相关文章

  1. Spring 使用 feign时设置header信息

    最近使用 SpringBoot 项目,把一些 http 请求转为 使用 feign方式.但是遇到一个问题:个别请求是要设置header的. 于是,查看官方文档和博客,大致推荐两种方式.也可能是我没看明 ...

  2. 原生js实现文件下载并设置请求头header

    原生js实现文件下载并设置请求头header const token="自行定义";//如果有 /** * 向指定路径发送下载请求 * @param{String} url 请求路 ...

  3. HTTP 请求头 Header

    HTTP 请求头 Header HTTP请求头概述 (HttpServletRequest) HTTP客户程序(例如浏览器),向服务器发送请求的时候必须指明请求类型(一般是GET或者POST或者HEA ...

  4. IOS NSURLRequest 设置 Header

    https://my.oschina.net/wolx/blog/406092 工程中的请求,需要设置Header,请求令牌才访问,NSURLRequest 请求没有直接设置header 的方法,需要 ...

  5. jmetter的http请求设置

    1.设置 cookie 2.设置header 3.login 4.post请求 5.get请求

  6. curl get请求添加header头信息

    function get($url) { $ch = curl_init(); curl_setopt($ch, CURLOPT_HTTPGET, true); curl_setopt($ch, CU ...

  7. {Django基础七之Ajax} 一 Ajax简介 二 Ajax使用 三 Ajax请求设置csrf_token 四 关于json 五 补充一个SweetAlert插件(了解)

    Django基础七之Ajax 本节目录 一 Ajax简介 二 Ajax使用 三 Ajax请求设置csrf_token 四 关于json 五 补充一个SweetAlert插件(了解) 一 Ajax简介 ...

  8. django系列6--Ajax04 请求设置(设置csrf_token)

    Ajax请求设置csrf_token 官方文档 csrf_token: https://docs.djangoproject.com/en/1.11/ref/csrf/ CSRF 跨站请求攻击,简单地 ...

  9. 解决AJAX跨域:1、利用JSONP;2、JS设置Header

    一.利用JSONP: 首先来看看在页面中如何使用jQuery的ajax解决跨域问题的简单版: $(document).ready(function(){ var url='http://localho ...

随机推荐

  1. java中关于IO流的知识总结(重点介绍文件流的使用)

    今天做软件构造实验一的时候,用到了java文件流的使用,因为之前学的不是很踏实,于是决定今天好好总结一下, 也方便以后的回顾. 首先,要分清IO流中的一些基础划分: 按照数据流的方向不同可以分为:输入 ...

  2. JAVA Stirng.format 使用理解

    JAVA Stirng.format 使用理解前言:项目中需要对一些字符串处理发现format方法的神奇之处一.api才是王道第一种二参使用①public static String format(S ...

  3. 我把代码开源、托管到了GitHub、码云

    前言 学习了那么多知识点,写了那么多代码,一直都没有时间整理,之前都是新学一个知识点就在同一个工程项目中进行实践测试,导致这个工程越来越臃肿.越来越乱,连我自己都快看不懂了... 这段时间整理了部分代 ...

  4. 2018.8.19 2018暑假集训之maxnum

    昨天去做志愿服务去了没写成Q_Q 今天再来一道 先放题面描述 设有n个正整数(n<=20),将它们联成一排,组成一个最大的多位数 设有n个正整数(n<=20),将它们联成一排,组成一个最大 ...

  5. Redis复制流程:图解

    一.新版复制PSYNC命令实现:复制实现总流程 (1)通过客户端向从服务器发送 slaveof <master_ip> <master_port>:此为异步执行,从服务器设置好 ...

  6. bzoj 3643Phi的反函数

    3643: Phi的反函数 Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 298  Solved: 192[Submit][Status][Discus ...

  7. ThreadGroup详细讲解

    import java.util.concurrent.TimeUnit; public class Test { public static void main(String[] args){ // ...

  8. ZIP:GZIP

    GZIPInputStream: GZIPInputStream(InputStream in) :使用默认缓冲区大小创建新的输入流. GZIPInputStream(InputStream in, ...

  9. PipelineDB Install and Test

    Installation Prerequisites: CentOS Linux release 7.2.1511 (Core) Download [root@citus1 ~]# wget http ...

  10. 异常:带有 CLSID {} 的 COM 对象无效或未注册

    今天处理调试打印程序的时候,看到这个异常: 代码: try { string strApplyEmpno=""; string strApplyDeptCode="&qu ...