简体   繁体   中英

Difference between “data” and “params” in Python requests?

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM