Si necesita configurar la cadena de encabezado del usuario en la solicitud curl, puede usar la -H
opción para configurar el agente de usuario como:
curl -H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.89 Safari/537.36" http://stackoverflow.com/questions/28760694/how-to-use-curl-to-get-a-get-request-exactly-same-as-using-chrome
El uso de una herramienta proxy como Charles Proxy realmente ayuda a simplificar algo como lo que está preguntando. Esto es lo que hago, usando esta página SO como ejemplo (a partir de julio de 2015 usando Charles versión 3.10):
- Haz que Charles Proxy se ejecute
- Realizar una solicitud web mediante el navegador
- Encuentre la solicitud deseada en Charles Proxy
- Haga clic derecho sobre la solicitud en Charles Proxy
- Seleccione 'Copiar solicitud cURL'
Ahora tiene una solicitud cURL que puede ejecutar en una terminal que reflejará la solicitud que realizó su navegador. Así es como se veía mi solicitud a esta página (con el encabezado de la cookie eliminado):
curl -H "Host: stackoverflow.com" -H "Cache-Control: max-age=0" -H "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8" -H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.89 Safari/537.36" -H "HTTPS: 1" -H "DNT: 1" -H "Referer: https://www.google.com/" -H "Accept-Language: en-US,en;q=0.8,en-GB;q=0.6,es;q=0.4" -H "If-Modified-Since: Thu, 23 Jul 2015 20:31:28 GMT" --compressed http://stackoverflow.com/questions/28760694/how-to-use-curl-to-get-a-get-request-exactly-same-as-using-chrome
Accept: text/html
encabezado para forzar la salida HTML.Abra Chrome Developer Tools, vaya a la pestaña Red, haga su solicitud (es posible que deba verificar "Conservar registro" si la página se actualiza). Busque la solicitud a la izquierda, haga clic con el botón derecho en "Copiar como cURL".
fuente
Verifique los encabezados HTTP que Chrome está enviando con la solicitud (usando la extensión del navegador o proxy) luego intente enviar los mismos encabezados con CURL - Posiblemente uno a la vez hasta que averigüe qué encabezado (s) hace que la solicitud funcione.
curl -A [user-agent] -H [headers] " http://something.com/api "
fuente