python并行请求多个HTTP接口
- 手机
- 2025-09-05 12:21:02

在需要并行请求多个 HTTP 接口的场景中,并且每个接口的查询参数(query)都不同时,可以结合 Python 的 concurrent.futures.ThreadPoolExecutor 来实现高效的并行请求处理。下面是一个示例代码,展示如何为每个接口配置不同的查询参数,并执行并行请求:
import requests from concurrent.futures import ThreadPoolExecutor, as_completed
定义接口的 URL 列表urls = [ “http://1”, “http://2/search”, “http://3/search”, “http://4/search”, “http://5:8/search” ]
定义每个请求的 query 参数queries = [ “query_1”, “query_2”, “query_3”, “query_4”, “query_5” ]
请求头headers = { “Content-Type”: “application/json” }
定义请求函数 # 定义请求函数 def post_request(url, query): data = { "serviceVersion": "6", "request": {"query": query}, "skipCache": True, "serviceId": "game-predicte-intention", "fetchResultNodeIds": ["12"] } try: response = requests.post(url, json=data, headers=headers) response.raise_for_status() # 检查请求是否成功 result = response.json().get('result', {}) return url, result except requests.RequestException as e: return url, f"Request failed: {e}" 使用多线程进行并行请求 # 使用多线程进行并行请求 def parallel_requests(urls, queries): results = {} with ThreadPoolExecutor(max_workers=len(urls)) as executor: # 提交每个 (url, query) 对应的请求 future_to_request = {executor.submit(post_request, url, query): (url, query) for url, query in zip(urls, queries)} for future in as_completed(future_to_request): url, query = future_to_request[future] try: url, result = future.result() results[(url, query)] = result print(f"URL: {url}, Query: {query}, Result: {result}") except Exception as e: print(f"Error processing URL {url} with Query {query}: {e}") return results 执行并行请求result_set = parallel_requests(urls, queries)
python并行请求多个HTTP接口由讯客互联手机栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“python并行请求多个HTTP接口”
上一篇
面向企业的采购ERP管理系统
下一篇
设计模式在Qt中的应用