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

转载于:https://www.cnblogs.com/mingbai/p/goHttpReq.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值