【问题标题】:Python - How to send a correct POST/GET?Python - 如何发送正确的 POST/GET?
【发布时间】:2017-10-02 08:03:54
【问题描述】:

所以我一直在玩通过 python 使用 API 的 Post/Set。到目前为止,我正在使用由以下机构提供的 API:

所以我首先做的是看起来像的参数

payload = {
    'username': 'Stack',
    'password': 'Overflow',
    'type': '4',
    'token_params': {
        'key': '1234',
        'pageurl': 'Hellow.com'
    }
}

我希望图片是正确的。

所以现在发送我所做的帖子......

ID = requests.post('http://barryme.me/api/notes', params=payload)

但后来我收到了:

<Response [500]>
Unable to complete request.

我认为我一定做错了我认为的 URL。我检查了诸如Post request tutorials 之类的帖子教程,但正如我所见,它没有给我带来任何运气。

问题是如何发送正确的 POST?

【问题讨论】:

    标签: python post get request python-requests


    【解决方案1】:

    文档不清楚,但由于它是一个 POST 请求,数据可能必须作为正文传递,而不是查询字符串。

    因此使用data 参数将有效负载放入请求正文,而不是定义查询(in-url)参数的params

    ID = requests.post('http://barryme.me/api/notes', data=payload)
    

    我猜token_params参数也必须改成字符串:

    import json
    payload = {
        'username': 'Stack',
        'password': 'Overflow',
        'type': '4',
        'token_params': json.dumps({
            'key': '1234',
            'pageurl': 'Hellow.com'
        })
    }
    

    【讨论】:

    • 哦,好吧,我试过了,但仍然遇到同样的问题。响应 500。我确实同意文档不清楚,这就是我所得到的全部内容 :( 所以这让我很头疼,但是你在上面说的方法通过更改为 data=payload 不起作用。它仍然给了我相同的响应500 - 无法完成。
    • 在我的编辑中尝试 token_params mod。如果这不起作用,请向 API 提供者询问精度,因为该文档显然没有帮助。
    • 确实有效!非常感谢纪尧姆!
    • 哇。它工作了 4 次,然后它死了,又给了我 500 个响应......我不知道了
    猜你喜欢
    • 2015-12-22
    • 1970-01-01
    • 1970-01-01
    • 2020-05-14
    • 2015-07-07
    • 2016-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多