Python 中的异步 HTTP POST 请求

asynchronous HTTP POST requests in Python

我有一个代码可以为列表中的所有元组顺序发布 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 库本身不支持 asyncio,我会使用 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))