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

Python中使用httplib发送HTTP请求的示例教程

发布时间:2023-12-23 23:21:15

Python中使用httplib发送HTTP请求的示例教程

httplib是Python的内置模块之一,用于发送HTTP请求和接收HTTP响应。在Python 2.x版本中,httplib被替代为http.client,但在Python 3.x版本中,httplib引入了一些新的特性,因此仍然值得了解如何使用它发送HTTP请求。

在开始使用httplib发送HTTP请求之前,你需要首先导入httplib模块:

import httplib

接下来,你需要创建一个HTTP连接。使用httplib的HTTPConnection类来创建这个连接。HTTPConnection的构造函数需要两个参数:主机名和端口号。例如,要连接到www.example.com的80端口,你可以这样做:

conn = httplib.HTTPConnection("www.example.com", 80)

现在,你已经建立了与服务器的连接。让我们看看如何发送HTTP请求。

发送GET请求:

要发送GET请求,可以使用HTTPConnection对象的request()方法。此方法接受三个参数:请求方法("GET"),请求路径和请求头。

conn.request("GET", "/")

发送POST请求:

要发送POST请求,可以使用HTTPConnection对象的request()方法。此方法接受四个参数:请求方法("POST"),请求路径,请求主体和请求头。

conn.request("POST", "/", body="Hello World", headers={"Content-Type": "text/plain"})

接收服务器响应:

发送请求后,需要接收服务器的响应。使用HTTPConnection对象的getresponse()方法可以获得服务器的响应对象。该响应对象提供有关响应的各种信息,如状态码、原因、头部和响应体等。

res = conn.getresponse()

可以使用响应对象的方法来获取和处理响应:

- getStatus():获取响应的状态码

- reason:获取响应的原因

- getheaders():获取响应的头部信息

- read():获取响应的整个内容

- readlines():按行读取响应的内容

例如,可以使用下面的代码来获取响应的状态码、原因和内容:

status = res.status
reason = res.reason
content = res.read()

最后,记得在使用完连接后关闭连接:

conn.close()

这是一个完整的示例,展示了如何使用httplib发送HTTP请求并接收服务器响应:

import httplib

# 创建HTTP连接
conn = httplib.HTTPConnection("www.example.com", 80)

# 发送GET请求
conn.request("GET", "/")

# 获取服务器响应
res = conn.getresponse()

# 获取响应的状态码和内容
status = res.status
content = res.read()

# 打印响应
print("Status:", status)
print("Content:", content)

# 关闭连接
conn.close()

希望这个示例教程能帮助你了解如何使用httplib发送HTTP请求。