我很好奇data
请求中params
参数与python-requests
参数之间的差异,以及何时应该使用每个参数。
一个例子是我有一系列的词组users=[{"email_hash": "fh7834uifre8houi3f"}, ... ]
,我尝试用
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
的情况还是我应该遵循的其他路径?谢谢!
答案 0 :(得分:39)
params
构成了网址中的query string,data
用于填充请求的正文(以及files
)。 GET
和HEAD
请求没有正文。
对于接受POST
请求的多数服务器,数据应作为请求 body 传入。
您需要查阅您所调用的特定API的文档以了解他们的期望,但如果您必须假设,则假设您必须使用data
。