Python中HTTPResponse()函数的参数和返回值详解
HTTPResponse()函数是Python中处理HTTP响应的函数。它的参数和返回值的详细说明如下:
参数:
1. fp:一个文件或一个类文件对象。如果提供了fp参数,则响应的内容会被写入到这个文件中。如果没有提供fp参数,则不能访问响应的内容。
2. strict:表示是否启用严格模式。默认为False,表示允许一些不规范的HTTP响应。
3. method:一个字符串,表示HTTP请求方法。默认为GET,表示发送一个GET请求。其他常用的值包括POST、PUT、DELETE等。
4. url:一个字符串,表示发送请求的URL。
5. headers:一个字典,表示HTTP请求头。默认为空字典。可以通过设置这个参数来添加自定义的请求头。
6. origin_req_host:一个字符串,表示原始请求头的主机名。默认为None。
7. unverifiable:一个布尔值,表示是否允许不可验证的请求。默认为False。
返回值:
一个HTTPResponse对象,它代表了HTTP响应。HTTPResponse对象有以下几个常用的属性和方法:
1. status:一个整数,表示响应的状态码。
2. version:一个字符串,表示HTTP版本。
3. reason:一个字符串,表示响应的原因短语。
4. headers:一个HTTPMessage对象,表示响应的头部信息。
5. getheaders():一个方法,返回一个列表,包含所有响应的头部信息。
6. read():一个方法,返回一个字符串,表示响应的内容。
7. geturl():一个方法,返回一个字符串,表示响应的URL。
使用例子:
import urllib.request
# 发送GET请求,获取百度首页的内容,并打印响应的状态码和内容
response = urllib.request.urlopen("http://www.baidu.com")
print(response.status)
print(response.read().decode())
# 发送POST请求,提交表单数据,并打印响应的状态码和内容
data = {"username": "admin", "password": "123456"}
data = urllib.parse.urlencode(data)
data = data.encode()
request = urllib.request.Request("http://example.com/login", data=data, method="POST")
response = urllib.request.urlopen(request)
print(response.status)
print(response.read().decode())
# 发送带有自定义请求头的GET请求,并打印响应的头部信息
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64)"}
request = urllib.request.Request("http://example.com", headers=headers)
response = urllib.request.urlopen(request)
print(response.getheaders())
上述例子中,我们首先使用urlopen()函数发送GET请求,获取百度首页的内容,并打印响应的状态码和内容。然后,我们使用urlopen()函数发送POST请求,提交表单数据,并打印响应的状态码和内容。最后,我们使用Request()函数发送带有自定义请求头的GET请求,并打印响应的头部信息。
