我在AWS上的NGINX Web服务器后面运行Flask restful API。我用我的Pi中的python模块打这个。Python请求调用失败,HTTPS
当我使用HTTP调用api时,一切正常。但我只是锁定了我的API,所以只有HTTPS是可能的。我改变了我的python模块使用的UIRL,但现在失败了。该代码非常简单...这里是一个摘录:
jsonpkg = {'subscriberID': self.api_login, 'token': self.api_token,
'content': speech_content}
headers = {'Content-Type': 'application/json'}
r = requests.post(self.api_apiurl, data=json.dumps(jsonpkg), headers=headers)
这些值由init init部分正确设置。我正在导入顶部的请求模块。错误消息表明它正在使用python 2.7。但是,当我监视API时,我可以看到它甚至没有触及服务器。我可以将浏览器指向api并且它的工作正常。
我是否理解python 2.7中的请求模块不支持https?
我需要为https发送附加参数吗?
python是旧的,不支持网站可能需要的SNI(已在2.7.9中实现),或者网站未正确设置并缺少链式证书(浏览器通常会解决此问题)。使用[SSLLabs](https://www.ssllabs.com/ssltest/analyze.html)检查您的网站,并查找连锁问题或SNI要求。简单地禁用证书验证不是一个好主意。 –