数据"之间的差异和" params"在Python请求?

时间:2014-07-02 16:03:36

标签: python python-requests

我很好奇data请求中params参数与python-requests参数之间的差异,以及何时应该使用每个参数。

一个例子是我有一系列的词组users=[{"email_hash": "fh7834uifre8houi3f"}, ... ],我尝试用

进行POST(requests.post()
params = {
    "ads_token": blah blah,
    "user_id": blah blah,
    "users": json.dumps(users)  # users=[{"email_hash": "fh7834uifre8houi3f"}, ... ]
    "hash_type": "md5"
}

并且由于users是几百长,因此来自json.dumps(users)的结果字符串(以及URL本身)非常长,我得到错误{'status_code': 414, 'reason': 'Request-URI Too Large'}。这是data的情况还是我应该遵循的其他路径?谢谢!

1 个答案:

答案 0 :(得分:39)

params构成了网址中的query stringdata用于填充请求的正文(以及files)。 GETHEAD请求没有正文。

对于接受POST请求的多数服务器,数据应作为请求 body 传入。

您需要查阅您所调用的特定API的文档以了解他们的期望,但如果您必须假设,则假设您必须使用data