【问题标题】:POST request to Django DRF call working in cURL but not with Postman对 Django DRF 调用的 POST 请求在 cURL 中工作,但不适用于 Postman
【发布时间】:2018-01-20 07:40:54
【问题描述】:

我正在按照说明在我的 rest-api 站点中支持 TokenAuthentication,显示为here。使用 cURL,我已经能够通过以下命令获取我的用户的令牌(用户名 - 示例,密码 - 示例):

curl -X POST -d "username=example&password=example" localhost:8000/api/login/

这会返回一个成功的响应,带有示例的身份验证令牌。

然而,当我通过 Postman 做(我认为是)同样的事情时,它根本不起作用。见下图。

从错误代码(400 - 错误请求)来看,它似乎根本没有收到 POST 参数。有人可以帮我吗?

【问题讨论】:

    标签: django curl django-rest-framework postman


    【解决方案1】:

    根据您的 API 设置方式,您可能需要在请求标头中指定内容类型Content-Type: application/json

    【讨论】:

    • 我实际上复制了 cURL 使用的所有标题并在 Postman 上尝试过,但无济于事。然后我只尝试了Content-Type,也不行。另外,我已经收到了 JSON 响应,只是不正确。
    • 对,内容类型标头告诉服务器您正在发送什么。你能显示工作的卷曲标题吗?
    【解决方案2】:

    在邮递员中查看您的网址。 URL 附有查询字符串。因此从 URL 中删除该查询字符串并将参数作为 post 请求发送。

    http://localhost:8000/api/login/
    

    【讨论】:

    • 做到了。我必须将 post 参数放在请求的正文中,而不是在查询中。非常感谢。我会尽快接受答案。
    • 感谢您的信息
    【解决方案3】:

    即使这是一个非常古老的问题,但如果这个答案会有所帮助...... 我有完全相同的问题

    解决方案: 地址栏不要放用户名和密码,只放

    并在正文中输入您的用户名和密码的 json 数据,如下所示

    注意,不要使用单引号'',而是使用双引号"",否则会失败,不知道为什么

    【讨论】:

      猜你喜欢
      • 2015-09-19
      • 2022-01-21
      • 2017-08-06
      • 1970-01-01
      • 2023-04-06
      • 1970-01-01
      • 1970-01-01
      • 2020-06-17
      • 1970-01-01
      相关资源
      最近更新 更多