我正在使用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')