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)
	......


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM