📜  Python -HTTP响应(1)

📅  最后修改于: 2023-12-03 15:18:53.111000             🧑  作者: Mango

Python - HTTP响应

在HTTP协议中,HTTP响应是从Web服务器返回给客户端的HTTP信息。本文将介绍如何使用Python发送HTTP请求并获取HTTP响应。

发送HTTP请求

我们可以使用Python标准库中的urllib.request模块发送HTTP请求。

以下是一个简单的示例代码:

import urllib.request

response = urllib.request.urlopen('http://www.example.com/')
print(response.read().decode('utf-8'))

在上面的代码中,我们使用urlopen函数发送HTTP请求。该函数返回一个类似于文件的对象,我们可以通过read方法读取HTTP响应内容。

HTTP响应信息

HTTP响应是由HTTP状态码、HTTP头部信息和HTTP正文三部分组成的。

我们可以通过Python代码获取HTTP响应的状态码、HTTP头部信息和HTTP正文。

获取HTTP状态码

我们可以使用status属性获取HTTP响应的状态码。

import urllib.request

response = urllib.request.urlopen('http://www.example.com/')
print(response.status)
获取HTTP头部信息

我们可以使用getheaders方法获取HTTP头部信息。

import urllib.request

response = urllib.request.urlopen('http://www.example.com/')
print(response.getheaders())
获取HTTP正文

我们可以使用read方法获取HTTP正文内容。

import urllib.request

response = urllib.request.urlopen('http://www.example.com/')
print(response.read().decode('utf-8'))
HTTP错误处理

我们可以使用urllib.error.HTTPError异常处理HTTP错误。

import urllib.request
import urllib.error

try:
    response = urllib.request.urlopen('http://www.example.com/')
except urllib.error.HTTPError as e:
    print('HTTPError:', e.code, e.reason)
except urllib.error.URLError as e:
    print('URLError:', e.reason)
else:
    print(response.status)

在上面的代码中,我们首先使用try语句发送HTTP请求,如果出现HTTP错误,则会抛出HTTPError异常;如果出现其他错误,则会抛出URLError异常。如果没有出现错误,则会打印HTTP响应状态码。

总结

在本文中,我们介绍了如何使用Python发送HTTP请求并获取HTTP响应。我们还介绍了如何获取HTTP响应的状态码、HTTP头部信息和HTTP正文,并且讲解了如何处理HTTP错误。在实际项目中,我们可以使用requests库来发送HTTP请求,它比标准库中的urllib模块更加方便。