我在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
答案 0 :(得分:2)
正如@BogdanIulianBursuc在他的评论中所建议的,Httpie使用不同的语法来提交列表。
所以正确的语法是subject:='[1,2]'