【问题标题】:Converting a basic CURL to Python's request将基本 CURL 转换为 Python 的请求
【发布时间】:2015-05-28 17:57:28
【问题描述】:

以下curl 工作正常:

curl -d '{"date":"2015-05-27T03:48:29.002Z"}' http://blabla.com

但我无法让它与 requests 一起使用:

payload = {'date' : '2015-05-27T03:48:29.002Z'}
r = requests.get(url, params=payload, headers=h)

我做错了什么?

【问题讨论】:

    标签: python curl python-requests


    【解决方案1】:

    使用 curl 您发布 JSON 数据,而 params 参数设置 URL 查询参数(无论是在 URL 中 ? 之后的内容)。

    使用 json 关键字参数和正确的动词(-d 告诉 curl 使用 POST 请求):

    payload = {'date' : '2015-05-27T03:48:29.002Z'}
    r = requests.post(url, json=payload)
    

    此外,这会将Content-Type 标头设置为application/json

    【讨论】:

    • 哈!问题正是我使用的是get 而不是post;我应该为 curl 使用 RTFM :) 接受额外的解释,谢谢。
    【解决方案2】:

    这应该适用于所有requests 版本:

    payload = {'date' : '2015-05-27T03:48:29.002Z'}
    r = requests.post('http://blabla.com', data=json.dumps(payload), headers={'Content-type': 'application/json'})
    

    【讨论】:

      【解决方案3】:

      尝试使用post 代替get

      payload = {'date' : '2015-05-27T03:48:29.002Z'}
      r = requests.post(url, params=payload, headers=h)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-01-30
        • 2020-03-18
        • 2023-04-02
        • 2019-08-17
        • 2021-07-08
        相关资源
        最近更新 更多