美文网首页
golang-http 请求---设置header与直接发

golang-http 请求---设置header与直接发

作者: 名白 | 来源:发表于2019-08-02 20:43 被阅读0次
    背景

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

          本文链接:https://www.haomeiwen.com/subject/kamrdctx.html