Python请求调用因HTTP而失败

2024-09-28 10:12:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我在AWS上nginxweb服务器后面运行flaskrestfulapi。我用Pi中的python模块实现了这个目标。在

当我使用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部分正确设置的。我正在导入顶部的请求模块。错误消息表明它正在使用Python2.7。然而,当我监视API时,我可以看到它甚至没有击中服务器。我可以把浏览器指向api,它可以正常工作。在

我能理解Python2.7中的请求模块不支持https吗?在

我需要为https发送其他参数吗?在


Tags: 模块httpsself服务器tokenawsapijson
1条回答
网友
1楼 · 发布于 2024-09-28 10:12:32

啊哈!再深入研究一下请求模块文档,我找到了答案。如果我用下面的

r = requests.post(self.api_apiurl, data=json.dumps(jsonpkg), headers=headers, verify=False)

那就行了。所以问题在于验证证书。我不太确定浏览器为什么没有这个…但也许它会自动完成额外的工作。所以我要么不验证证书要么有本地副本(?)这是可以证实的。在


最终更新:

我终于想出了如何将我的站点证书与链证书连接起来(并理解原因)。这个网站here是一个很大的帮助。而且,一旦它们被连接起来,你可能会得到第二个错误,如果你用谷歌搜索它,你会发现这是由于在第一个证书之后和第二个证书之前需要回车造成的(用记事本编辑结果连接的文件)。然后我可以使用“verify=True”返回帖子,这使得关于没有验证的警告消失了。在

相关问题 更多 >

    热门问题