使用 Python 发送 POST 请求

我正在尝试使用 Python 发布一个简单的 POST 请求,但收到意外的错误消息。

文档示例如下:

  • GET /configurations :获取配置列表

    • 参数:token(字符串)

  • POST /configurations :发布新配置

    • 参数:token(字符串)、configName(字符串)、configParameters(数组)

如果我尝试下面的代码,GET 请求就可以正常工作:

parameters = 'token=' + token

url = base_url + '/configurations'

response = requests.get(url, params=parameters)

print(response.json())

但是,如果我尝试使用下面的代码来处理 POST 请求,则会收到错误 401:“无效令牌”


configName = 'test_create_config' + str(random.randint(0, 1000000))

configParameters = [

    {'parameter': 1, 'parameterValue': '1'},

    {'parameter': 2, 'parameterValue': '0'}

    ]

body = {

        'token': token,

        'configName': configName,

        'configParameters': configParameters

    }


url = base_url + '/configurations'

response = requests.post(url, data=body)

print(response.json())

我确信我遗漏了一些东西,但我找不到什么,因为令牌与用于获取请求的令牌相同。


拉丁的传说
浏览 108回答 1
1回答

摇曳的蔷薇

根据您发布的 Swagger 文档,您传递的参数应该作为 URL 查询参数 - 而不是正文。- in: query   name: token   description: Your token value.   required: true  type: string所以你应该将请求更改为:response = requests.post(url, params=body)  # params are query parameters
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python