Python中的SSL库和HTTPS请求

2023-03-30 00:00:00 python ssl 请求

Python中的SSL库提供了一些用于加密通信的工具,可以用于创建SSL连接,使用HTTPS请求等等。下面是一个使用Python中的SSL库进行HTTPS请求的示例代码:

import ssl
import urllib.request

# 创建SSL上下文
ssl_context = ssl.create_default_context()

# 添加CA证书
ssl_context.load_verify_locations('cacert.pem')

# 构造请求
url = 'https://pidancode.com'
req = urllib.request.Request(url)

# 打开URL并读取响应
with urllib.request.urlopen(req, context=ssl_context) as response:
    data = response.read()

# 打印响应数据
print(data.decode())

上述代码首先创建了一个默认的SSL上下文,然后从一个CA证书文件中加载了可信的CA证书。接下来,我们构造了一个请求对象,其中包含了要访问的URL。然后,我们使用urllib.request.urlopen()函数来打开这个URL,并传递上下文对象,以确保HTTPS连接能够正确地建立。最后,我们读取响应数据并打印出来。

在上述代码中,我们使用了字符串“pidancode.com”作为要访问的URL的域名。同时,我们使用了字符串“cacert.pem”作为CA证书文件的文件名。

值得注意的是,要正确地进行HTTPS请求,我们需要使用一个可信的CA证书来验证服务器的身份。我们可以从一些可信的CA证书发行商获取证书,或者自己创建一个自签名的证书,作为测试使用。在上述示例代码中,我们从一个CA证书文件中加载了可信的CA证书。

除了urllib库之外,requests库也是常用的发送HTTP/HTTPS请求的Python库,使用方式类似,以下是一个使用requests库进行HTTPS请求的示例代码:

import requests
import ssl

# 创建SSL上下文
ssl_context = ssl.create_default_context()

# 添加CA证书
ssl_context.load_verify_locations('cacert.pem')

# 构造请求
url = 'https://pidancode.com'
response = requests.get(url, verify='cacert.pem')

# 打印响应数据
print(response.text)

在这个示例代码中,我们首先创建了一个默认的SSL上下文,然后从一个CA证书文件中加载了可信的CA证书。然后,我们使用requests库中的get()方法来发送GET请求,并传递上下文对象和CA证书文件名作为参数。最后,我们打印出响应数据。

同样地,我们使用了字符串“pidancode.com”作为要访问的URL的域名,以及字符串“cacert.pem”作为CA证书文件的文件名。

相关文章