requests 是一个非常小巧全面的库,应用它可以很容易写出与服务器进行交互的程序,今天遇到了一个问题,与服务器交互时,url都是https开头的,都进行了ssl加密处理,这样一来,就不能像之前那样访问http开头的url那样进行处理了。

查了一些资料,可以配置ssl进行验证的文件,方式如下

res = requests.get('https://127.0.0.1:5503/login',cert=('./server.crt', './server.key.unsecure'))


可运行后,验证不成功,我的key文件是 server.key.unsecure,这个文件是为了防止输入密码而特地生成的,生成方法可参考这篇帖子

​​点击打开链接​

如果我将key文件改成server.key,那么虽然验证通过,却需要手动输入密码,这显然是我不希望的。

最后采用了一个很丑陋但是很有效的方法,不验证

session = requests.session()
data = {'username':'admin','password':'admin'}
res = session.post('https://127.0.0.1:5503/login',verify=False,data=data)

将verify设置为False,算是把这个问题给绕过去了