I was curious what the difference was between the data
parameter and the params
parameter in a python-requests
request, and when each should be used.
One example is I have an array of dicts users=[{"email_hash": "fh7834uifre8houi3f"}, ... ]
and I try to do a POST ( requests.post()
) with
params = {
"ads_token": blah blah,
"user_id": blah blah,
"users": json.dumps(users) # users=[{"email_hash": "fh7834uifre8houi3f"}, ... ]
"hash_type": "md5"
}
and because users
is a few hundred long, the resulting string from json.dumps(users)
(and thus the URL itself as well) is very long and I get the error {'status_code': 414, 'reason': 'Request-URI Too Large'}
. Would this be a case for data
or is there some other path I should follow? Thanks!
params
form the query string in the URL, data
is used to fill the body of a request (together with files
). GET
and HEAD
requests have no body.
For the majority of servers accepting a POST
request, the data is expected to be passed in as the request body .
You need to consult the documentation for the specific API you are calling as to what they expect, but if you have to assume, assume you have to use data
.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.