Как отправить заголовок с помощью HTTP-запроса через curl-вызов?

Я хочу отправить заголовок на мой сервер Apache в Linux. Как я могу достичь этого с помощью звонка?

Комментарии к вопросу (1)
Решение

man curl:

   -H/--header <header>
          (HTTP)  Extra header to use when getting a web page. You may specify
          any number of extra headers. Note that if you should  add  a  custom
          header that has the same name as one of the internal ones curl would
          use, your externally set header will be used instead of the internal
          one.  This  allows  you  to make even trickier stuff than curl would
          normally do. You should not replace internally set  headers  without
          knowing  perfectly well what you're doing. Remove an internal header
          by giving a replacement without content on the  right  side  of  the
          colon, as in: -H "Host:".

          curl  will  make sure that each header you add/replace get sent with
          the proper end of line marker, you should thus not  add  that  as  a
          part  of the header content: do not add newlines or carriage returns
          they will only mess things up for you.

          See also the -A/--user-agent and -e/--referer options.

          This option can be used multiple times to add/replace/remove  multi-
          ple headers.

Пример:

curl --header "X-MyHeader: 123" www.google.com

Вы можете увидеть отправленный запрос, добавив опцию -v.

Комментарии (4)

GET:

  • с JSON: *
curl -i -H "Accept: application/json" -H "Content-Type: application/json" http://hostname/resource
  • с XML: *
curl -H "Accept: application/xml" -H "Content-Type: application/xml" -X GET http://hostname/resource

ПОСТ:

  • Для публикации данных: *
curl --data "param1=value1&param2=value2" http://hostname/resource
  • Для загрузки файла: *
curl --form "fileupload=@filename.txt" http://hostname/resource
  • RESTful HTTP Post: *
curl -X POST -d @filename http://hostname/resource
  • Для входа в сайт (автор): *
curl -d "username=admin&password=admin&submit=Login" --dump-header headers http://localhost/Login
curl -L -b headers http://localhost/
Комментарии (3)

В PHP :

curl_setopt($ch, CURLOPT_HTTPHEADER, array('HeaderName:HeaderValue'));

или вы можете установить несколько:

curl_setopt($ch, CURLOPT_HTTPHEADER, array('HeaderName:HeaderValue', 'HeaderName2:HeaderValue2'));
Комментарии (5)

GET (несколько параметров):

curl -X  GET "http://localhost:3000/action?result1=gh&result2=ghk"

или

curl --request  GET "http://localhost:3000/action?result1=gh&result2=ghk"

или

curl  "http://localhost:3000/action?result1=gh&result2=ghk"

или

curl -i -H "Application/json" -H "Content-type: application/json"  "http://localhost:3000/action?result1=gh&result2=ghk"
Комментарии (1)

Вы также можете отправить несколько заголовков, данные (например, JSON) и указать метод вызова (POST, GET) в один вызов CUrl, например:

curl -X POST(Get or whatever) \
  http://your_url.com/api/endpoint \
  -H 'Content-Type: application/json' \
  -H 'header-element1: header-data1' \
  -H 'header-element2: header-data2' \

.больше заголовков.....

  -d '{
  "JsonExArray": [
    {
      "json_prop": "1",
    },
    {
      "json_prop": "2",
    }
  ]
}'
Комментарии (0)

Я использую Почтальона.

Выполните любой звонок, который вы хотите сделать. Затем почтальон предоставляет удобный инструмент для отображения кода завивки .

Запустите его в терминале.

Комментарии (1)

Я перешел с curl на Httpie; синтаксис выглядит как:

http http://myurl HeaderName:value
Комментарии (0)

Если вы хотите отправить свои пользовательские заголовки , вы можете сделать это следующим образом:

curl -v -H @{'custom_header'='custom_header_value'} http://localhost:3000/action?result1=gh&result2=ghk
Комментарии (0)