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方法等待所有请求完成。
