如何使用HTTPie发送嵌套JSON的POST请求?

如何使用HTTPie发送嵌套JSON的POST请求?,json,cmd,httpie,Json,Cmd,Httpie,我想使用HTTPie从windowsshell发送POST请求 JSON输入看起来像: { "name": "pub1", "email": "support@pub1.com", "address": { "city": "new york", "pincode": 12345

我想使用HTTPiewindowsshell发送POST请求

JSON输入看起来像:

{
    "name": "pub1",
    "email": "support@pub1.com",
    "address": {
        "city": "new york",
        "pincode": 12345
    }
}
http -v POST http://127.0.0.1:8000/publication/ name=pub1 email=support@pub1.com address:="{"city":"new york", "pincode":12345}"
http: error: "address:={city: new": Expecting property name enclosed in double quotes: line 1 column 2 (char 1)
我试过:

{
    "name": "pub1",
    "email": "support@pub1.com",
    "address": {
        "city": "new york",
        "pincode": 12345
    }
}
http -v POST http://127.0.0.1:8000/publication/ name=pub1 email=support@pub1.com address:="{"city":"new york", "pincode":12345}"
http: error: "address:={city: new": Expecting property name enclosed in double quotes: line 1 column 2 (char 1)
它给出以下错误:

{
    "name": "pub1",
    "email": "support@pub1.com",
    "address": {
        "city": "new york",
        "pincode": 12345
    }
}
http -v POST http://127.0.0.1:8000/publication/ name=pub1 email=support@pub1.com address:="{"city":"new york", "pincode":12345}"
http: error: "address:={city: new": Expecting property name enclosed in double quotes: line 1 column 2 (char 1)

我是通过邮递员和它的工作来完成的, 但我想知道如何使用httpie?


我还在SOF和GitHub上尝试了可用的解决方案,但无法找出问题所在。

Windows shell引用规则不同,因此您不能使用单引号,因为所有osx/linux示例都需要双引号

您收到的错误消息是“期望属性名包含在双引号中”,但这很容易混淆,因为它在肉眼看来是双引号中的

转义json文本中的双引号就可以做到这一点。您可以通过将引号字符加倍来执行此操作,如

“城市”
=>
“城市”

如果您愿意,您还可以使用echo技巧来避免所有引用。此方法类似于使用文件,因此可以指定整个json文档和而不是单个字段

echo {"address": {"city":"london"} } | http -v post https://postman-echo.com/post

您是否尝试在httpie JSON参数之外使用简单引号<代码>地址:='{“城市”:“德里”,“pincode”:24215}'是的,我也尝试了单引号,最简单的方法是将它放在一个文件中,然后执行
http:8000/publication/@file.json
,如果这对您有效的话。另外,这个问题纯粹是关于使用
httpie
的,与DRF无关,所以也许你可以去掉所有这些,只保留
httpie
部分?这是否回答了你的问题?Try:
http-v:8000/publication/name=pub1电子邮件=support@pub1.com'地址:={“城市”:“纽约”,“pincode”:12345}'