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

使用urllib3connection()方法发送HTTP请求的示例代码

发布时间:2023-12-26 05:23:48

以下是使用urllib3库中的HTTPConnectionManager类和urllib3.PoolManager类的示例代码,分别实现对HTTP请求的发送和获取响应。

import urllib3

# 创建一个HTTPConnectionManager对象,用于发送HTTP请求
manager = urllib3.connection.HTTPConnectionManager()

# 发送HTTP GET请求
response = manager.request("GET", "https://api.example.com")

# 获取响应状态码、头信息和响应内容
status_code = response.status
headers = response.headers
content = response.data

# 打印响应状态码、头信息和响应内容
print(f"Status Code: {status_code}")
print(f"Headers: {headers}")
print(f"Content: {content}")

# 关闭连接
manager.close()

上述代码中,创建了一个HTTPConnectionManager对象manager,用于发送HTTP请求。然后使用request方法向指定的URL发送了一个GET请求,并将返回的HTTPResponse对象赋给response变量。

接下来,可以使用response对象的方法获取响应的状态码、头信息和内容。status属性存储了响应的状态码,headers属性存储了响应的头信息,data属性存储了响应的内容。

最后,可以打印出响应的状态码、头信息和内容。

需要注意的是,在完成HTTP请求后,应该调用close方法关闭连接,以释放资源。

另外,urllib3库还提供了PoolManager类,它可以自动管理连接池,简化了请求管理的过程。下面是使用PoolManager类的示例代码:

import urllib3

# 创建一个PoolManager对象,用于发送HTTP请求
manager = urllib3.PoolManager()

# 发送HTTP GET请求
response = manager.request("GET", "https://api.example.com")

# 获取响应状态码、头信息和响应内容
status_code = response.status
headers = response.headers
content = response.data

# 打印响应状态码、头信息和响应内容
print(f"Status Code: {status_code}")
print(f"Headers: {headers}")
print(f"Content: {content}")

# 关闭连接(可选)
manager.clear()

使用PoolManager类时,创建了一个PoolManager对象manager,用于发送HTTP请求。然后使用request方法向指定的URL发送了一个GET请求,并将返回的HTTPResponse对象赋给response变量。

接下来,可以使用response对象的方法获取响应的状态码、头信息和内容。

最后,可以打印出响应的状态码、头信息和内容。

与上述使用HTTPConnectionManager类的示例代码相比,使用PoolManager类可以自动管理连接池,无需手动关闭连接。但如果不再使用该连接池的话,可以调用clear方法关闭并清除连接池。

综上所述,以上是使用urllib3库发送HTTP请求的示例代码,并分别演示了使用HTTPConnectionManager类和PoolManager类的两种方式。