2016-04-22 7 views
-2

то, что я пытался до сих пор, как и запрос HTTP формируется сейчас: curl -X POST http://localhost:8080/v1.0добавить имя пользователя и пароль в запросе HTTP в golang

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, который она должна быть следующей ссылке:

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

эхо @JimB, используйте пакет HTTP: https://golang.org/pkg/net/http/#Request.SetBasicAuth –

+0

@ JimB, вы можете пожалуйста, exp lain, что мне нужно добавить в этот код, чтобы отправлять только имя пользователя и пароль вместе с http-запросом – vijay

+0

@ william.taylor.09 l_httpClient_ptr.Post (p_url_str, "text/xml; charset = utf-8 ", bytes.NewBufferString (p_request_str)), используя это, я могу отправить обычный HTTP-запрос, но мне нужно отправить имя пользователя и пароль также, как я упомянул в своем вопросе – vijay

ответ

0

Вы можете создать запрос с пользовательскими заголовками, как это:

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)