欢迎访问宙启技术站
智能推送

Python中如何使用httplib库发送多个并发HTTP请求

发布时间:2024-01-11 20:24:56

在Python中,可以使用httplib库来发送多个并发的HTTP请求。httplib库是Python内置的标准库,提供了HTTP客户端功能,用于发送HTTP请求并获取响应。

下面是一个使用httplib库发送多个并发HTTP请求的示例代码:

import httplib
import threading

def send_request(url):
    conn = httplib.HTTPConnection(url)  # 创建HTTP连接
    conn.request('GET', '/')  # 发送GET请求
    response = conn.getresponse()  # 获取响应
    print('Response from {}: {}'.format(url, response.status))

urls = ['www.example.com', 'www.google.com', 'www.github.com']  # 要发送请求的URL列表

threads = []  # 存放线程的列表
for url in urls:
    t = threading.Thread(target=send_request, args=(url,))
    t.start()
    threads.append(t)

for t in threads:
    t.join()  # 等待所有线程完成

print('All requests have been sent.')

在上述代码中,首先定义了一个send_request函数,用于发送HTTP请求并获取响应。在主程序中,定义了一个URL列表urls,其中包含了要发送请求的URL地址。

然后,通过使用多线程来并发发送HTTP请求。对于每个URL,都创建了一个线程,并调用send_request函数发送请求。通过threading.Thread类创建一个线程对象,并使用start方法启动线程。启动后,线程会调用send_request函数来发送请求。

最后,使用join方法等待所有线程完成。该方法会阻塞主线程,直到所有线程都执行完毕。最后打印出"所有请求已发送"的消息。

需要注意的是,以上示例代码中使用的是Python 2.x版本的httplib库,Python 3.x版本中httplib被分为http.client和http.server两个模块,使用方式有所不同。

总结起来,以上示例给出了一个使用httplib库发送多个并发HTTP请求的示例代码,通过使用多线程来同时发送多个请求,并通过join方法等待所有请求完成。