developer tip

cURL 억제 응답 본문

copycodes 2020. 10. 10. 10:13
반응형

cURL 억제 응답 본문


응답 본문의 출력을 억제하도록 cURL에 지시 할 수 있습니까?

제 경우에는 응답 본문이 HTML 페이지이므로 CLI 버퍼가 오버플로되어 관련 정보를 찾기가 어렵습니다. HTTP 응답 코드, 헤더 등과 같은 출력의 다른 부분- 실제 HTML을 제외한 모든 부분을 검사하고 싶습니다 .


-o스위치와 null의사 파일을 사용할 수 있습니다 .

유닉스

curl -s -o /dev/null -v http://google.com

윈도우

curl -s -o nul -v http://google.com

여기에 모든 curl 출력과 헤더를 억제하는 방법이 있으며, 오류가 발생하더라도 여전히 표시하는 옵션이 있습니다. 크론 작업 또는 자동화 된 테스트에 유용합니다.

유닉스

모든 출력을 억제하려면 :

curl --silent --output /dev/null http://example.com

출력을 억제하지만 오류가 발생할 경우 계속 표시하려면 다음을 수행하십시오.

curl --silent --output /dev/null --show-error --fail http://example.com

윈도우

모든 출력을 억제하려면 :

curl --silent --output nul http://example.com

출력을 억제하지만 오류가 발생할 경우 계속 표시하려면 다음을 수행하십시오.

curl --silent --output nul --show-error --fail http://example.com

설명 된 매개 변수

--silent다운로드 진행중인 통계를 억제합니다 (그러나 여전히 HTML 출력을 표시 함) 모드가 활성화 된 경우에도
--output /dev/null성공적인 출력
--show-error표시 오류를 숨 깁니다. HTTP 응답이 단순히 DNS / 대신 오류 코드 (404, 500 등)이면 오류가 발생합니다. TCP 오류.silent
--fail


업데이트 : 원래 작성자가 모든 것을 침묵시키기보다는 요청의 헤더와 응답 코드를 검사하고 싶었다는 것을 알고 있습니다. 이를 수행하는 방법에 대한 자세한 내용 samael의 답변참조하십시오 .


헤더를 표시하지만 응답 본문을 숨기려면 다음을 사용하는 것이 좋습니다.

curl -sIXGET http://somedomain.com/your/url

나는 curl -I http://somedomain.com/your/url응답 헤더를 보여주는 데 사용 했습니다. 하지만 문제는 요청 에만 응답하는 API 호출을 테스트하려는 경우 좋지 않은 HEAD메서드사용하여 요청을한다는 것 GET입니다. 이것이의 목적이며 -X GET요청을 GET.

요약하면 다음과 같습니다.

-s가죽 진행 출력에서 바 (다른 프로그램으로 배관 때 특히 유용)
-I방송 헤더 (그러나이 만드는 HEAD요청)
-XGET변환이 다시 요청 GET요청

참조 : http://www.woolie.co.uk/article/curl-full-get-request-dropping-body/

참고 URL : https://stackoverflow.com/questions/32488162/curl-suppress-response-body

반응형