我正在使用 python 请求模块来调用 API。
在我将我的代码推送到 AWS 之前,一切都运行良好。即使在 AWS 上,如果我在开发服务器上工作,即 ec2.####.amazon.com:8000
,它也能正常工作。
这是我的代码:
r = requests.post(api_url, data = {"var 1":"value", "var 2":"value"})
我的 API url 不允许使用 GET
方法,因此作为响应,我收到错误消息,不允许使用 GET
方法,这意味着读取了 requests.post
作为 get
知道这里出了什么问题。
最佳答案
实际上问题是由于 SSL 引起的,如果您的服务器使用 https
方法,那么您需要在 requests.post
中添加以下行
r = requests.post(api_url, data = {"var 1":"value", "var 2":"value"}, verify=True)
还要确保您的 api_url 包括 https
而不是 http
我为此写了一个小函数
def get_base_url(request):
host = get_host(request)
if request.is_secure():
return '{0}{1}/{2}'.format('https://', host, 'url')
else:
return '{0}{1}/{2}'.format('http://', host, 'url')
关于Python 请求 POST 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34396060/