标签:__ 975 HTTPS python FILE request context print requests
最近需要测试一个HTTPS接口,基于CA证书、client key、 client 证书的ssl连接。
网上了解到的实现是用python+urllib,
import urllib.request
import ssl
if __name__ == '__main__':
CA_FILE = "ca.crt"
KEY_FILE = "client.key"
CERT_FILE = "client.crt"
context = ssl.SSLContext(ssl.PROTOCOL_TLS)
context.check_hostname = False
context.load_cert_chain(certfile=CERT_FILE, keyfile=KEY_FILE)
context.load_verify_locations(CA_FILE)
context.verify_mode = ssl.CERT_REQUIRED
try:
# 通过request()方法创建一个请求:
request = urllib.request.Request('https://127.0.0.1:5000/')
res = urllib.request.urlopen(request, context=context)
print(res.code)
print(res.read().decode("utf-8"))
except Exception as ex:
print("Found Error in auth phase:%s" % str(ex))
想用python+requests实现,但requests没有context参数,requests官网描述如下,
用requests的cert+verify参数实现,连接成功,代码如下:
import requests
import ssl
if __name__ == '__main__':
try:
# 通过request()方法创建一个请求:
r=requests.get("https://127.0.0.1:5000/",cert=('client.crt','client.key'),verify='ca.crt')
print(r.status_code)
print(r.text)
print(r.headers)
except Exception as ex:
print("Found Error in auth phase:%s" % str(ex))
来源:https://blog.csdn.net/weixin_51380973/article/details/113864819
标签:__,975,HTTPS,python,FILE,request,context,print,requests 来源: https://blog.csdn.net/xc_zhou/article/details/116769386
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。