【问题标题】:How do I make a cURL request to zomato api?如何向 zomato api 发出 cURL 请求?
【发布时间】:2018-01-04 22:20:34
【问题描述】:

我刚刚开始探索 API。到目前为止,这是我的代码。对于 locu API,这是可行的,但对于 Zomato,他们使用我不知道如何使用的 curl 标头请求。有人可以指导或告诉我怎么做吗?

import json
import urllib2

Key = 'Zomato_key'

url = 'https://developers.zomato.com/api/v2.1/categories'

json_obj = urllib2.urlopen(url)

data = json.load(json_obj)

print data

【问题讨论】:

    标签: json python-2.7 zomato-api


    【解决方案1】:

    通过查看Zomato API docs,似乎必须在标题中设置参数user-key

    以下作品:

    import json
    import urllib2
    
    Key = '<YOUR_ZOMATO_API_KEY>'
    url = "https://developers.zomato.com/api/v2.1/categories"
    
    request = urllib2.Request(url, headers={"user-key" : Key})
    json_obj = urllib2.urlopen(request)
    data = json.load(json_obj)
    
    print data
    

    如果您想要一种更优雅的方式来查询 API,请查看 requests 模块(您可以使用 pip install requests 安装)。

    我建议你以下:

    import json
    import requests
    
    Key = <YOUR_ZOMATO_API_KEY>'
    url = "https://developers.zomato.com/api/v2.1/categories"
    
    if __name__ == '__main__':
        r = requests.get(url, headers={'user-key': Key})
        if r.ok:
            data = r.json()
            print data
    

    注意:如果您希望自己保留密钥,我建议您将密钥从 StackOverflow 中删除。

    【讨论】:

    • 非常感谢!我一直在寻找资源来学习这个。只是想知道你能指出任何教授 API 请求的在线材料吗?
    • 您可以从requests documentation 开始。如果您认为这解决了您的问题,请接受答案。
    【解决方案2】:

    这对我不起作用,你能为我推荐一些其他方法吗? -->尝试编译时的代码需要很长时间并在内置的请求方法中返回回溯错误

    但是 curl 命令正在运行 curl -X GET --header "Accept: application/json" --header "user-key: c5062d18e16b9bb9d857391bb32bb52f" "https://developers.zomato.com/api/v2.1/categories"

    【讨论】:

    • 嗨,问题是用代码来做,而不是 curl 命令。这个答案作为对问题的评论会更好。
    猜你喜欢
    • 2022-11-02
    • 2018-04-23
    • 1970-01-01
    • 2019-07-12
    • 2016-03-06
    • 2022-10-24
    • 2021-01-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多