使用httpie测试REST API的问题

时间:2015-10-30 05:55:35

标签: django rest django-rest-framework

我在Django REST中创建了一个用于CURD操作的API,来自Rest可浏览的API我可以查看/更新/删除记录。但是,当我通过httpie执行更新时,它不起作用。

网址 - > http://localhost:8000/api/user/profile/1/

来自浏览器的结果 - >

 {
    "user": 3,
    "subject": [
        1,
        3,
        4
    ],
    "phone": "897897897",
    "address": "xcgsajgchagclkk"
}

httpie请求 - > http PUT http://localhost:8000/api/user/profile/1/ user=3 subject=[1,2] phone=333 address=my

错误 - >

{
    "subject": [
        "Expected a list of items but got type \"unicode\"."
    ]
}

我们可以看到错误是请求中发送的数据格式,但我在主题[1,2]中发送列表。那么为什么它会给出错误。

修改:我的请求标题

HTTP/1.0 400 BAD REQUEST
Allow: GET, PUT, PATCH, DELETE, HEAD, OPTIONS
Content-Type: application/json
Date: Fri, 30 Oct 2015 05:33:58 GMT
Server: WSGIServer/0.1 Python/2.7.6
Vary: Accept, Cookie
X-Frame-Options: SAMEORIGIN

1 个答案:

答案 0 :(得分:2)

正如@BogdanIulianBursuc在他的评论中所建议的,Httpie使用不同的语法来提交列表。

所以正确的语法是subject:='[1,2]'