1. httplib模块介绍
httplib模块是Python自带的一个用于发送HTTP请求的模块。它提供了一些方法来创建HTTP连接、发送请求和接收响应。使用httplib模块,我们可以方便地进行各种HTTP通信操作。
1.1 创建HTTP连接
要使用httplib发送HTTP请求,首先需要创建一个HTTP连接。可以通过httplib.HTTPConnection类来实现这一功能。HTTPConnection类的构造函数接受两个参数:主机名和端口号。
示例代码:
import httplib
conn = httplib.HTTPConnection("www.example.com", 80)
上述代码创建了一个与主机名为www.example.com、端口号为80的HTTP连接。
1.2 发送HTTP请求
在创建了HTTP连接之后,就可以使用HTTPConnection对象的request方法来发送HTTP请求。request方法接收两个参数:请求方法和请求路径。可以使用GET、POST、PUT、DELETE等常见的HTTP请求方法。
示例代码:
conn.request("GET", "/index.html")
上述代码向服务器发送了一个GET请求,请求路径为/index.html。
2. HTTP请求头部
HTTP请求可以包含一些额外的头部信息,用于携带一些客户端与服务器之间的信息。可以使用HTTPConnection对象的putheader方法来设置请求头部。
2.1 设置请求头部
putheader方法接收两个参数:头部字段名和头部字段值。可以使用该方法多次设置不同的头部字段。
示例代码:
conn.putheader("User-Agent", "Mozilla/5.0")
conn.putheader("Content-Type", "application/json")
上述代码示例设置了两个常见的头部字段:User-Agent和Content-Type。
3. 发送POST请求
除了发送GET请求,httplib模块也支持发送POST请求。POST请求通常用于提交数据给服务器。
3.1 设置请求体
在发送POST请求之前,需要设置请求体中的数据。可以使用HTTPConnection对象的send方法来发送请求体数据。
示例代码:
data = "name=John&age=30"
conn.send(data)
上述代码示例将"name=John&age=30"设置为请求体数据。
3.2 设置Content-Length头部
在发送POST请求时,还需要设置Content-Length头部字段,用于告诉服务器请求体的长度。可以使用HTTPConnection对象的putheader方法来设置Content-Length。
示例代码:
conn.putheader("Content-Length", str(len(data)))
上述代码示例根据请求体数据的长度设置了Content-Length头部。
4. 接收HTTP响应
发送HTTP请求后,服务器会返回一个HTTP响应。可以通过HTTPConnection对象的getresponse方法来获取响应。
4.1 获取响应状态码和头部
getresponse方法返回的是一个HTTPResponse对象,可以通过该对象的status属性获取响应的状态码,通过getheaders方法获取响应的头部字段。
示例代码:
response = conn.getresponse()
print "Status:", response.status
print "Headers:", response.getheaders()
上述代码示例获取了响应的状态码和头部字段,并打印输出。
4.2 获取响应体
除了响应的状态码和头部字段,还可以通过HTTPResponse对象的read方法获取响应体的内容。
示例代码:
body = response.read()
print "Body:", body
上述代码示例获取了响应体的内容,并打印输出。
总结
本文介绍了Python httplib模块的使用方法,包括创建HTTP连接、发送HTTP请求、设置请求头部、发送POST请求和接收HTTP响应。通过使用httplib模块,我们可以方便地进行各种HTTP通信操作。强调了一些重要的设置和操作,希望对大家有所帮助。