我正在学习 Go,并遇到了这个问题。
我只是使用 HTTP 客户端下载网页内容:
package main
import (
"fmt"
"io/ioutil"
"log"
"net/http"
)
func main() {
client := &http.Client{}
req, err := http.NewRequest("GET", "https://mail.ru/", nil)
req.Close = true
response, err := client.Do(req)
if err != nil {
log.Fatal(err)
}
defer response.Body.Close()
content, err := ioutil.ReadAll(response.Body)
if err != nil {
fmt.Println(err)
}
fmt.Println(string(content)[:100])
}
当读取响应正文时,我遇到了一个意外的EOF
错误。与此同时,内容变量具有完整的页面内容。
只有在下载https://mail.ru/
内容时才会出现此错误。对于其他URL,一切正常-没有任何错误。
我使用curl下载此页面内容-一切都按预期工作。
我有点困惑-这里发生了什么?
Go v1.2,在Ubuntu和MacOS X上尝试过