Google Places API请求在没有用户代理标头的情况下失败

时间:2015-08-08 15:48:55

标签: python python-requests google-places-api

我们有一个python应用程序,它使用请求库与google地方进行了很多交谈。传统上,看起来像这样:

import requests
url = "https://maps.googleapis.com/maps/api/place/details/json"
payload = {
    "sensor": "false",
     "key": YOUR_KEY_HERE,
     "placeid": SOME_PLACE_ID_HERE,
}
response = requests.get(url, params=payload)
content = response.text

然而,今天我们突然开始收到403错误,说我们的流量异常,这导致整个应用程序崩溃。经过多次试验和错误以及拔毛后,我尝试使用好的ole urllib2库并且它工作正常,我的浏览器中的完全相同的请求也是如此。

所以我添加了一个完全没有意义的用户代理标题,如下所示:

import requests
url = "https://maps.googleapis.com/maps/api/place/details/json"
payload = {
    "sensor": "false",
     "key": YOUR_KEY_HERE,
     "placeid": SOME_PLACE_ID_HERE,
}
response = requests.get(url, params=payload, headers={'user-agent': 'foo'})
content = response.text

问题消失了。有谁知道这里发生了什么?

0 个答案:

没有答案