• 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)
    	......
    
  • 相关阅读:
    jekins安装
    Nginx启动、关闭命令
    win10启动docker desktop报错
    CSS设置背景图片
    Lucene 8.5.2核心API
    Lucene 8.5.2演示API
    html+css实现选项卡效果
    搞懂JavaScript全局变量与局部变量,看这篇文章就够了
    你不知道的CSS妙用,纯CSS实现炫酷照片墙
    JS中!function(){}()的理解
  • 原文地址:https://www.cnblogs.com/mingbai/p/goHttpReq.html
Copyright © 2020-2023  润新知