Python 请求 POST 不起作用

标签 python django amazon-web-services python-requests

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

相关文章:

python - 通过python脚本向远程服务器发送参数

python - 检查 Django 模型字段选项是否存在

python - Django Channels Group.send 无法在 python 控制台中工作?

java - 列出 aws 存储桶中的对象

amazon-web-services - 模块未找到错误: No module named 'aiohttp' in AWS Glue

python - 除了在 Python 中,编写 try 的最佳方法是什么?

iphone - iPhone(iOS5)上的 PyObjC 坏了?

python - 使用Python解析Json文件时出现关键错误

python - Django 与 SQL Server 上的数据库

amazon-web-services - 如何在 Windows 10 上安装 aws iot greengrass