使用Python的X-Access-Token请求失败

时间:2019-07-28 22:11:11

标签: python httprequest token

我有一个请求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查询参数:a​​ccess-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状态代码请求。

1 个答案:

答案 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)