Python中的异步HTTPPOST请求



我有一个代码,它为列表中的所有元组顺序发布HTTP请求,并将响应附加到另一个列表中。

import requests
url = 'https://www....'
input_list = [(1,2),(6,4),(7,8)]
output_list = []
for i in input_list:
resp = (requests.post('url',data = i[1]).text,i[0])
output_list.append(resp)
print(output_list)

有人能帮我指明并行HTTP请求的方向吗?

由于requests库本机不支持异步,我会使用multiprocessing.pool.ThreadPool,假设大部分时间都花在等待IO上。否则,使用multiprocessing.Pool可能会有好处

from multiprocessing.pool import ThreadPool
import requests
url = 'https://www....'
input_list = [(1,2),(6,4),(7,8)]
def get_url(i):
return (requests.post('url',data = i[1]).text,i[0])
with ThreadPool(10) as pool: #ten requests to run in paralel
output_list = list(pool.map(get_url, input_list))

最新更新