zoukankan      html  css  js  c++  java
  • 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)
    	......
    
  • 相关阅读:
    23.Java函数
    22.java中的break和continue关键字
    21.Java中for循环
    20.java中的while循环
    19.java中选择判断语句(switch)
    18.java中判断(if…else)
    17.java运算符的优先级与结合性
    16.Java三元运算符
    数组去重
    数组 字符串 对象 常用方法
  • 原文地址:https://www.cnblogs.com/mingbai/p/goHttpReq.html
Copyright © 2011-2022 走看看