curl에 대한 요청 헤더를 어떻게 설정합니까?


197

curl요청 에 대해 헤더에 여러 값을 전달하려면 어떻게 합니까?


우리에게 보여줄 수있는 예를 지금 사용하고 있습니까?
Ryan Bigg

4
여러 개의 -H 플래그를 추가하십시오. 예를 들어curl -H "Content-Type : application/json" -H "Authorization : Token token='yourtokenhere'"
gsumk

답변:


242

-H매개 변수를 여러 번 사용하십시오 .

curl -H "Accept-Charset: utf-8" -H "Content-Type: application/x-www-form-urlencoded" http://www.some-domain.com

헤더에 포함되어 있으면 "어떻게됩니까?
프리 윈드

2
@Freewind는 큰 따옴표 대신 작은 따옴표로 값을 감싸거나 이스케이프 처리합니다. 이 경우 항상 똑같은 일을하십시오.
Darth Egregious

47

때로는 헤더를 변경하는 것만으로는 충분하지 않으며 일부 사이트는 리퍼러도 확인합니다.

curl -v \
     -H 'Host: restapi.some-site.com' \
     -H 'Connection: keep-alive' \
     -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' \
     -H 'Accept-Language: en-GB,en-US;q=0.8,en;q=0.6' \
     -e localhost \
     -A 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.65 Safari/537.36' \
     'http://restapi.some-site.com/getsomething?argument=value&argument2=value'

이 예에서 참조 자 (-e 또는 --referer curl)는 'localhost'입니다.


45

curl 요청에서 여러 헤더를 전달하려면 단순히 curl 명령을 추가 -H하거나 추가 --header하십시오.

//Simplified
$ curl -v -H 'header1:val' -H 'header2:val' URL

//Explanatory
$ curl -v -H 'Connection: keep-alive' -H 'Content-Type: application/json'  https://www.example.com

더 나아 가기

User-Agent , Cookie , Host 와 같은 표준 HTTP 헤더 필드의 경우 실제로이를 설정하는 다른 방법이 있습니다. curl 명령은 다음 헤더 필드 설정을위한 지정된 옵션을 제공합니다.

  • -A (또는 --user-agent) : "User-Agent"필드를 설정하십시오.
  • -b (또는 --cookie) : "쿠키"필드를 설정하십시오.
  • -e (또는 --referer) : "Referer"필드를 설정하십시오.
  • -H (또는 --header) : "Header"필드 설정

예를 들어 다음 두 명령은 동일합니다. 둘 다 HTTP 헤더에서 "User-Agent"문자열을 변경합니다.

    $ curl -v -H "Content-Type: application/json" -H "User-Agent: UserAgentString" https://www.example.com
    $ curl -v -H "Content-Type: application/json" -A "UserAgentString" https://www.example.com
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.