Python中的异步HTTP POST请求

2024-05-05 01:56:28 发布

您现在位置: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请求吗


Tags: 代码httpsimporthttpurl列表forinput
1条回答
网友
1楼 · 发布于 2024-05-05 01:56:28

由于requests库本机不支持异步IO,我将使用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))

相关问题 更多 >