如何使用grequests发出HTTP POST请求

Cry*_*pto 11 python grequests

我尝试了以下方法:

import grequests

urls = ['http://localhost/test', 'http://localhost/test']

params = {'a':'b', 'c':'d'}
rs = (grequests.post(u, params) for u in urls)
grequests.map(rs)
Run Code Online (Sandbox Code Playgroud)

但它说如下:

File "search.py", line 6, in <genexpr>
rs = (grequests.post(u, params) for u in urls)
TypeError: __init__() takes exactly 3 arguments (4 given)
Run Code Online (Sandbox Code Playgroud)

我还需要将响应传递给回调进行处理.

pra*_*een 25

grequests.post()函数只接受一个位置参数,即您发送该POST请求的URL.其余参数被视为关键字参数.

所以你需要调用grequests.post()为:

import grequests

urls = ['http://localhost/test', 'http://localhost/test']

params = {'a':'b', 'c':'d'}
rs = (grequests.post(u, data=params) for u in urls)
grequests.map(rs)
Run Code Online (Sandbox Code Playgroud)

  • 对于POST请求,您需要使用'data'而不是'param'.数据=参数 (2认同)