Development Tip

http 응답 본문 (json) 만 출력하고 다른 헤더는 출력하지 않도록 curl을 얻는 방법

yourdevel 2020. 12. 4. 21:01
반응형

http 응답 본문 (json) 만 출력하고 다른 헤더는 출력하지 않도록 curl을 얻는 방법


bash 스크립트에서 curl을 사용하여 아래와 같이 서비스의 응답을 가져옵니다.

response=$(curl -isb -H "Accept: application/json" "http://host:8080/some/resource")

서비스 응답은 json 유형이며 브라우저에서 완벽하게 응답 할 수 있습니다.
그러나 curl 응답에는 다른 원치 않는 것 (예 :이 경우 set-cookie, content-length 헤더)이 있으며 때때로 실제 응답이 소모됩니다.

다음은 출력입니다 echo $response>

 Set-Cookie: rack.session=BAh7CEkiD3Nlc3Npb25faWQGOgZFVEkiRWJlY2JiOTE2M2Q1ZWI4NThjMDdi%0AYjRiOWRjMGMxMGEwYTBkMjE3NmJhZDVjYzY4YjY4ZTlmMTE2ZGVkYWE3MTMG%0AOwBGS
SIJY3NyZgY7AEZJIiVhZmQ2MmUyZGMxMzFmOGEwMjg3NDlhNWM3YmVm%0AN2FjNwY7AEZJIg10cmFja2luZwY7AEZ7B0kiFEhUVFBfVVNFUl9BR0VOVAY7%0AAFRJIi00MTc0OGM2MWNkMzljZTYxNzY3ZjU0
Y2I5OTdiYWRkN2MyNTBkYmU4%0ABjsARkkiGUhUVFBfQUNDRVBUX0xBTkdVQUdFBjsAVEkiLWRhMzlhM2VlNWU2%0AYjRiMGQzMjU1YmZlZjk1NjAxODkwYWZkODA3MDkGOwBG%0A--ee97a62095e7d42129
 tontent-Length: 354c8; path=/; HttpOnly

이것은 내 응답 구문 분석 논리를 깨고 있습니다.
나는 이상한 일이 간헐적으로 일어나는 것을 보았다.

curl 출력에서 "only" json 응답 을 얻는 방법이 있습니까?
나는 컬 문서를 훑어 보았지만 아무것도 볼 수 없거나 놓쳤을 수도 있습니다.
도움을 주셔서 감사합니다! 고마워


다음 -i옵션을 지정합니다 .

-i , --include

(HTTP) 출력에 HTTP 헤더를 포함합니다 . HTTP 헤더에는 서버 이름, 문서 날짜, HTTP 버전 등이 포함됩니다.

명령 줄에서 해당 옵션을 제거하기 만하면됩니다.

response=$(curl -sb -H "Accept: application/json" "http://host:8080/some/resource")

#!/bin/bash

req=$(curl -s -X GET http://host:8080/some/resource -H "Accept: application/json") 2>&1
echo "${req}"

참고 URL : https://stackoverflow.com/questions/24254064/how-to-get-curl-to-output-only-http-response-body-json-and-no-other-headers-et

반응형