如何使用 HTTPie 发送 POST 嵌套 JSON 请求?
How to send POST request for Nested JSON using HTTPie?
我想使用 HTTPie 从 Windows POST 发送请求 shell
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)
我使用 Postman 及其 Working 完成了此操作,
但我想知道如何使用 httpie?
我也在 SOF 和 GitHub 上尝试了可用的解决方案,但无法弄清楚问题是什么。
Windows shell 引用规则不同,因此您不能像所有 osx/linux 示例那样使用带单引号的 :='<json>'
,您需要双引号。
您收到的错误消息是“Expecting 属性 name enclosed in double quotes”,但这令人困惑,因为它 是 在双引号中肉眼可见。
转义 json 文字中的双引号将执行此操作。您可以通过将引号字符加倍来实现此目的,如 ""
.
"city"
=> ""city""
http -v post https://postman-echo.com/post address:="{""city"":""london""}"
POST /post HTTP/1.1
Content-Type: application/json
Host: postman-echo.com
User-Agent: HTTPie/2.3.0
{
"address": {
"city": "london"
}
}
如果愿意,您还可以使用回声技巧来避免所有引用。此方法类似于使用文件,因此您指定整个 json 文档并且 而不是 个别字段。
echo {"address": {"city":"london"} } | http -v post https://postman-echo.com/post
我想使用 HTTPie 从 Windows POST 发送请求 shell
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)
我使用 Postman 及其 Working 完成了此操作, 但我想知道如何使用 httpie?
我也在 SOF 和 GitHub 上尝试了可用的解决方案,但无法弄清楚问题是什么。
Windows shell 引用规则不同,因此您不能像所有 osx/linux 示例那样使用带单引号的 :='<json>'
,您需要双引号。
您收到的错误消息是“Expecting 属性 name enclosed in double quotes”,但这令人困惑,因为它 是 在双引号中肉眼可见。
转义 json 文字中的双引号将执行此操作。您可以通过将引号字符加倍来实现此目的,如 ""
.
"city"
=> ""city""
http -v post https://postman-echo.com/post address:="{""city"":""london""}"
POST /post HTTP/1.1
Content-Type: application/json
Host: postman-echo.com
User-Agent: HTTPie/2.3.0
{
"address": {
"city": "london"
}
}
如果愿意,您还可以使用回声技巧来避免所有引用。此方法类似于使用文件,因此您指定整个 json 文档并且 而不是 个别字段。
echo {"address": {"city":"london"} } | http -v post https://postman-echo.com/post