【问题标题】:append username and password in http request in golang在golang的http请求中附加用户名和密码
【发布时间】:2016-08-16 04:22:10
【问题描述】:

到目前为止我尝试过的就像 现在形成的http请求是:curl -X POST http://localhost:8080/v1.0

l_httpClient_ptr := http.Client{
  Timeout: timeout,
 }
 var l_resp_ptr *http.Response
 var l_resp_byte []byte
 l_resp_ptr, r_err = l_httpClient_ptr.Post(p_url_str, "text/xml; charset=utf-8", bytes.NewBufferString(p_request_str))

 l_resp_byte, r_err = ioutil.ReadAll(l_resp_ptr.Body)
 l_resp_ptr.Body.Close()
 r_response_str = string(l_resp_byte)

 return
}

在这里我只能发送请求 xml 和 URL。 使用我的代码,我不知道如何发送用户名和密码以及 url,它应该类似于以下 URL:

curl -H "ChannelName: guest" -H "ChannelPassword: guest" -X POST http://localhost:8080/v1.0/

【问题讨论】:

  • 要回显@JimB,请使用http包:golang.org/pkg/net/http/#Request.SetBasicAuth
  • @JimB,你能解释一下我需要在这个代码中添加什么来只发送用户名和密码以及 http 请求
  • @william.taylor.09 l_httpClient_ptr.Post(p_url_str, "text/xml; charset=utf-8", bytes.NewBufferString(p_request_str)) 我只能发送正常的http请求但我需要发送用户名和密码,就像我在我的问题中提到的那样
  • 查看这里如何设置标题:stackoverflow.com/questions/32540219/…

标签: http go restful-authentication beego


【解决方案1】:

您可以使用自定义标头创建请求,如下所示:

req, err := http.NewRequest("POST", p_url_str, bytes.NewBufferString(p_request_str))
req.Header.Set("ChannelName", "guest")
req.Header.Set("ChannelPassword", "guest") 

然后执行这个请求:

l_resp_byte, r_err := l_httpClient_ptr.Do(req)

【讨论】:

    猜你喜欢
    • 2015-05-28
    • 1970-01-01
    • 2018-05-01
    • 2015-02-15
    • 2019-08-14
    • 1970-01-01
    • 1970-01-01
    • 2015-10-04
    • 2013-11-16
    相关资源
    最近更新 更多