Python中使用httplib发送HTTP请求的示例教程
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请求。
