我有一个请求URI和一个令牌。如果我使用:
curl -X GET \
-H 'X-Access-Token: __API_EXPLORER_AUTH_KEY__' \
'https://eatstreet.com/publicapi/v1/restaurant/search?method=both&street-address=316+W.+Washington+Ave.+Madison,+WI'
等,我得到200并查看相应的JSON数据。但是,当我尝试通过python脚本访问此数据时,我不断收到400和401错误代码。
我认为格式化HTTP请求标头进行身份验证存在问题。以下是网站上列出的一些详细信息:
EatStreet API是通过HTTPS请求的一组无状态JSON端点。生产API仅托管在/ publicapi / v1路径下的https://eatstreet.com上。
身份验证 对EatStreet API的每个请求都必须使用访问令牌进行身份验证。新开发者应该去这里获得访问令牌。
身份验证选项:HTTP请求标头 包括以下请求标头:X-Access-Token:{访问令牌}。
身份验证选项:查询参数 包括以下URL查询参数:access-token = {访问令牌}。
以下是EatStreat API文档的链接:https://developers.eatstreet.com/
我认为我的语法有问题,但是我尝试了许多不同的变体来格式化代码,并且我不断提出400或401状态代码。
这是我目前拥有的脚本。
api_url = 'https://eatstreet.com/publicapi/v1/restaurant/search'
apiKey = '__API_EXPLORER_AUTH_KEY__'
headers = {'X-Access-Token': apiKey}
def get_restaurant_info():
response = requests.get(api_url, headers = headers)
print(response.status_code)
我希望使用以下格式的JSON文件:{“ address”:地址,“ restaurants”:Restaurant []}
相反,我收到了错误的HTTP状态代码请求。
答案 0 :(得分:0)
print(response.text)
将向您显示错误。您需要添加地址或纬度/经度坐标。以下作品。
api_url = 'https://eatstreet.com/publicapi/v1/restaurant/search?method=both&street-address=316+W.+Washington+Ave.+Madison,+WI'
apiKey = '__API_EXPLORER_AUTH_KEY__'
headers = {'X-Access-Token': apiKey}
def get_restaurant_info():
response = requests.get(api_url, headers = headers)
print(response.status_code)