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

Python中HTTPResponse()函数的参数和返回值详解

发布时间:2023-12-25 02:28:37

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请求,并打印响应的头部信息。