【发布时间】:2018-07-31 18:31:32
【问题描述】:
我想下载 Fantasy Football Data 以在 Go 中进行分析,但是当我尝试从 this api page 下载时,我得到一个空响应,即使该代码适用于其他网站,例如this api page
最小复制,输出一个空数组。
package main
import (
"fmt"
"io/ioutil"
"net/http"
"time"
)
const AllPlayerData = "https://fantasy.premierleague.com/drf/bootstrap-static"
func main() {
downloadAllData()
}
func downloadAllData() {
client := &http.Client{
Timeout: 20 * time.Second,
}
response, err := client.Get(AllPlayerData)
if err != nil {
fmt.Println("Unable to download player data.")
return
}
body, err := ioutil.ReadAll(response.Body)
if err != nil {
fmt.Println("Failed to read response")
return
}
defer response.Body.Close()
fmt.Println(body)
}
同样的网页在 Python 中可以正常下载:
import requests
url = "https://fantasy.premierleague.com/drf/bootstrap-static"
r = requests.get(url)
print(r.content)
我认为这与例如Ajax calls 在 Chrome 中查看网络请求不会显示任何超出页面加载本身的内容
【问题讨论】:
-
您是否尝试记录错误消息?
fmt.Println("error: %v", err)如果没有错误,只是一个空响应,你检查响应头了吗?也许这是python自动遵循的重定向,但Go客户端没有。 -
没有任何错误消息,也没有任何有用的响应标头。响应的状态为 200,但内容长度为 0