我遇到了一个问题,在某些URL上,Golang代码无法检索预期的内容。我不会发布实际的URL,但它具有以下形式,并且是指向Google Drive文件下载的链接:
https://docs.google.com/uc?id=somelongid&export=download
。如果我使用wget获取文件,则可以正常工作。我还有Ruby代码,其中使用open()
也可以正常工作。但出于某种原因,Golang返回一个空缓冲区而没有错误。如果我使用此代码来获取一些“普通”的URL,例如静态网站,则按预期工作并返回非空响应。下面是我从项目中提取出的代码,以简化和缩小问题可能存在的范围。以下是输出。package main
import (
"fmt"
"io/ioutil"
"net/http"
)
func main() {
resp, err := http.Get("myurlishere")
if err != nil {
fmt.Println("Something went wrong")
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
fmt.Printf("Body: %v\n", body)
fmt.Printf("Error: %v\n", err)
}
输出
$go run main.go
Body: []
Error: <nil>