Django JWT Auth,为什么一个请求有效,另一个请求无效

时间:2016-04-05 00:27:11

标签: python django curl

我正在尝试Django JWT Auth并注意到网址对一种帖子的反应很好,但对另一种帖子反应不好,但我可以找出原因。

基本上,如果我使用readme.md中提到的cURL POST,一切都按计划进行:

$ curl -X POST -H "Content-Type: application/json" -d '{"username":"admin","password":"abc123"}' http://localhost:8000/api-token-auth/

但如果您使用其他类型的cURL POST并使用相同的信息,则不起作用:

$ curl -d 'username=admin&password=abc123' http://localhost:8000/api-token-auth/

我知道“内容类型”是不同的,但不应该以同样的方式接受请求,它们都是格式良好的帖子?

1 个答案:

答案 0 :(得分:1)

Curl的-d选项实际上发送请求,就像它是一个Web浏览器。我的猜测是,您正在测试的URL没有标准的Web表单,因此无法实际处理请求。

TL; DR非常确定Django JWT Auth不支持application/x-www-form-urlencoded内容类型。

来自curl手册:

  

-d --data                 (HTTP)将POST请求中的指定数据发送到HTTP                 服务器,与用户拥有的浏览器相同                 填写HTML表单并按下提交按钮。这将                 导致curl使用content-type将数据传递给服务器                 应用程序/ x-WWW窗体-urlencoded。比较-F, - form。

希望这有帮助!