http-headers headers - ¿Cómo enviar un encabezado usando una solicitud HTTP a través de una llamada curl?




php multiple (7)

Utilice -H or --header .

Página de manual : http://curl.haxx.se/docs/manpage.html#-H

Deseo enviar un encabezado a mi servidor Apache en una caja de Linux. ¿Cómo puedo lograr esto a través de una llamada curl?


GET (múltiples parámetros):

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

o

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

o

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

o

curl -i -H "Application/json" -H "Content-type: application/json"  "http://localhost:3000/action?result1=gh&result2=ghk"

En caso de que desee enviar sus encabezados personalizados , puede hacerlo de esta manera:

curl -v -H @{'custom_header'='custom_header_value'} http://localhost:3000/action?result1=gh&result2=ghk

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.

Ejemplo:

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

Puede ver la solicitud que envió curl agregando la opción -v .


He cambiado de rizo a Httpie ; la sintaxis se ve como

http http://myurl HeaderName:value

OBTENER:

con JSON:

curl -i -H "Accept: application/json" -H "Content-Type: application/json" http://hostname/resource

con XML:

curl -H "Accept: application/xml" -H "Content-Type: application/xml" -X GET http://hostname/resource

ENVIAR:

Para publicar datos:

curl --data "param1=value1&param2=value2" http://hostname/resource

Para subir archivos:

curl --form "[email protected]" http://hostname/resource

RESTful HTTP Post:

curl -X POST -d @filename http://hostname/resource

Para iniciar sesión en un sitio (auth):

curl -d "username=admin&password=admin&submit=Login" --dump-header headers http://localhost/Login
curl -L -b headers http://localhost/

Modificar, o más correctamente, agregar encabezados HTTP adicionales es una excelente herramienta de depuración de código, si no otra cosa.

Cuando una solicitud de URL devuelve una redirección o una imagen, no hay una "página" html para escribir temporalmente los resultados del código de depuración, al menos no una que esté visible en un navegador.

Un enfoque es escribir los datos en un archivo de registro local y ver ese archivo más adelante. Otra es agregar temporalmente encabezados HTTP que reflejen los datos y las variables que se están depurando.

Regularmente agrego encabezados HTTP adicionales como X-fubar-somevar: o X-testing-someresult: para probar cosas, y he encontrado muchos errores que de otro modo habrían sido muy difíciles de rastrear.





curl http-headers