2014-05-15 3 views
4

curl을 사용하여 응답 헤더의 내용 유형 만 표시 할 수 있는지 궁금합니다.Curl show Content-type only

예를 들어, 파일 다운로드를 다운로드하기 전에 content-type이 text/html인지 확인한 다음 application/pdf인지 확인하고 싶습니다.

나는 그 문서가 나를 위해 유효하고 아무 것도하지 않으면 문서를 반환 할 것이라는 희망 아래 예제를 사용했습니다! 아래 샘플은 페이지의 전체 내용을 인쇄합니다.

curl -F "type=text/html" www.google.nl 

하지만 난이 예와 같이 뭔가를 할 경우 여전히 전체를 다운로드하고, 난 그 잘 생각하지 않습니다 아래 ...

curl -F "type=text/html" http://www.axmag.com/download/pdfurl-guide.pdf 

많은 감사합니다 : D

답변

9

옵션 -F은 양식 용입니다. 대신 응답 헤더없이 응답 본문없이 -I을 사용하여 HEAD 요청을 보내려합니다.

는 URL의 콘텐츠 유형을 표시하려면 다음

컬 -s -I www.google.nl | grep "^ Content-Type :"

여기서 진행률 및 오류 메시지를 제외시키기 위해 자동 모드 용으로 옵션 -s이 추가되었습니다.

HTTP 요청에 Accept 헤더를 지정할 수도 있습니다. 이 헤더는 특정 콘텐츠 형식 동의하는 데 사용됩니다

를 컬 -s -H "수락 : text/html과"http://www.axmag.com/download/pdfurl-guide.pdf

을하지만 단점은 대부분의 웹 서버가 당신에게 오류 페이지를 제공하는 것입니다있는 또한 내용 유형이 text/html입니다. 그러므로 여전히 HTML 파일을 얻을 수 있습니다.

+0

영웅 : D – bobbybouwmann

2
당신은 "콘텐츠 유형"매개 변수와 함께, 너무 "-w"옵션을 사용할 수 있습니다

:

-s :

curl -s -o /dev/null -w '%{content_type}' 'google.com' 

자동 모드, 그나마가 더 이상 전송 화면이

-o는 : 출력 파일로,이 경우, 널 (null)는/dev /에 보내는

-w : 당신은 단지 당신과 함께 보여이 경우, 원하는 콘텐츠 형식

참조 : 오늘의 https://curl.haxx.se/docs/manpage.html