programing

HTTPie를 사용하여 중첩된 JSON 개체 전송

muds 2023. 3. 7. 22:07
반응형

HTTPie를 사용하여 중첩된 JSON 개체 전송

HTTPie를 사용하여 네스트된 JSON 개체를 전송하려고 하는데 방법을 찾을 수 없습니다.JSON 오브젝트를 송신하는 방법은 명확하지만, 다음과 같이 네스트된 오브젝트는 송신하지 않습니다.

{ "사용자": { "이름":"john" "age" : 10 }

2022년 1월에 출시된 HTTPie 3.0 업데이트:

HTTPie 언어를 사용하여 중첩된 JSON을 기본적으로 지원합니다.

$ http pie.dev/post \
  tool[name]=HTTPie \
  tool[about][homepage]=httpie.io \
  tool[about][mission]='Make APIs simple and intuitive' \
  tool[platforms][]=terminal \
  tool[platforms][]=desktop \
  tool[platforms][]=web \
  tool[platforms][]=mobile 
{
    "tool": {
        "name": "HTTPie",
        "about": {
            "mission": "Make APIs simple and intuitive",
            "homepage": "httpie.io"
        },
        "platforms": [
            "terminal",
            "desktop",
            "web",
            "mobile"
        ]
    }
}

중첩된 JSON에 대한 자세한 내용은 다음 문서를 참조하십시오.https://httpie.io/docs/cli/nested-json


3.0 이전 HTTPie에 대한 오래된 답변:

다음을 통해 JSON 전체를 전달할 수 있습니다.

$ echo '{ "user": { "name": "john", "age": 10 } }' | http httpbin.org/post

또는 다음과 같이 raw JSON을 값으로 지정합니다.

$ http httpbin.org/post user:='{"name": "john", "age": 10 }'

저는 이런 게 좋아요.

$ http PUT localhost:8080/user <<<'{ "user": { "name": "john", "age": 10 }}'

이 명령어는 관련 명령어와 동일한 프레픽스를 가지기 때문에 이 명령어를 사용하는 것이 편리합니다.Ctrl+Rbash:

$ http localhost:8080/user/all
$ http GET localhost:8080/user/all # the same as the previous
$ http DELETE localhost:8080/user/234

Here Strings 가 없는 경우 다음 회피책을 제안할 수 있습니다.

~> function tmp; set f (mktemp); echo $argv > "$f"; echo $f; end
~> http POST localhost:8080/user < (tmp '{ "user": { "name": "john", "age": 10 }}')

httpie 문서에서 언급된 다른 접근법은 JSON 파일을 사용하는 것입니다. 이것은 보다 상세하고 깊이 중첩된 페이로드에 대해 잘 작동했습니다.

http POST httpbin.org/post < post.json

Windows 10(cmd.exe)에서는 인용 규칙에 따라 구문이 약간 다릅니다.속성/문자열은 큰따옴표로 둘러싸야 합니다.

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"
    }
}

또한 에코를 사용하여 이중 따옴표 없이 개체 전체를 전송할 수도 있습니다.

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

언급URL : https://stackoverflow.com/questions/37215565/sending-nested-json-object-using-httpie

반응형