我正在嘗試使網絡服務器能夠像代理一樣工作。我的服務器向客戶端發送特定站點的請求(POST,GET ...),接收來自此站點的響應並將其提供給客戶端。正如我所說,像一個代理。問題是:在來自google.com的回覆中(例如任何其他網站),我無法閱讀正文。狀態碼是200,但是當我嘗試閱讀正文內容時,我收到了奇怪的東西。如何在GO的請求中獲得身體響應?
這是我的代碼的一部分,我提出請求
request, err := http.NewRequest(method, url, nil)
for k, v := range m {
request.Header.Set(k, v)
}
if err != nil {
log.Fatalln(err.Error())
}
client := http.Client{}
resp, err := client.Do(request)
if err != nil {
log.Fatalln(err.Error())
}else{
fmt.Println("=======================")
fmt.Println(resp)
fmt.Println("=======================")
fmt.Println(resp.Body)
並且收到這樣的:
=======================
&{200 OK 200 HTTP/1.1 1 1 map[Date:[Mon, 09 Jan 2017 18:07:49 GMT]
Cache-Control:[private, max-age=0] Content-Type:[text/html;
charset=ISO-8859-1] P3p:[CP="This is not a P3P policy! See
https://www.google.com/support/accounts/answer/151657?hl=en for more
info."] Server:[gws] X-Xss-Protection:[1; mode=block] Expires:[-1] X-
Frame-Options:[SAMEORIGIN] Set-Cookie:[NID=94=i5qZWuqYtrLAkc-amGHbmDnqx3Wg8mGx0kuk6s-
gKWYMSNXbScl0Cb5GldDzGdfrIrJvHC3151JzHB2s3XLdmFN82-
_gSxu07xwPNbVlzKiZgE9dJf7vXeXSaYQhWowv; expires=Tue, 11-Jul-2017
18:07:49 GMT; path=/; domain=.google.com.br; HttpOnly]] 0xc4200cac20
-1 [] false true map[] 0xc420126000 <nil>}
=======================
&{0xc420014700 <nil> <nil>}
響應正文是[io.ReadCloser](https://godoc.org/io#ReadCloser)。顯示你用來[閱讀](https://godoc.org/io#Reader.Read)正文的代碼。 –
您尚未嘗試閱讀正文,您剛剛打印了Response.Body結構。 – JimB
是的,我認爲正文內容在Response.Body結構中。那麼我怎麼得到身體? – Vivi