我正在使用python请求模块来调用API.
在我将代码推送到AWS之前,一切正常.即使在AWS上,如果我正在使用dev服务器,即ec2,也可以工作.####.amazon.com:8000.
这是我的代码:
r = requests.post(api_url,data = {"var 1":"value","var 2":"value"})
我的API网址不允许GET方法,所以作为响应我收到错误,GET方法不允许,这意味着requests.post读取为get
知道这里有什么问题.
最佳答案
实际上问题是由于SSL,如果您的服务器使用https方法,那么您需要在requests.post中添加以下行
r = requests.post(api_url,"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://','url')