Если вам нужно установить строку заголовка пользователя в запросе curl, вы можете использовать -H
опцию для установки пользовательского агента, например:
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
Использование прокси-инструмента, такого как Charles Proxy, действительно помогает быстро справиться с чем-то вроде того, о чем вы просите. Вот что я делаю, используя эту страницу SO в качестве примера (по состоянию на июль 2015 года с использованием Charles версии 3.10):
- Запустите Charles Proxy
- Сделать веб-запрос через браузер
- Найдите желаемый запрос в Charles Proxy
- Щелкните правой кнопкой мыши по запросу в Charles Proxy
- Выберите "Копировать запрос cURL".
Теперь у вас есть запрос cURL, который вы можете запустить в терминале, который будет отражать запрос, сделанный вашим браузером. Вот как выглядел мой запрос к этой странице (с удаленным заголовком cookie):
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
заголовок для принудительного вывода HTML.Откройте Инструменты разработчика Chrome, перейдите на вкладку «Сеть», сделайте свой запрос (вам может потребоваться установить флажок «Сохранить журнал», если страница обновляется). Найдите запрос слева, щелкните правой кнопкой мыши «Копировать как cURL».
источник
Проверьте заголовки HTTP, которые Chrome отправляет с запросом (с использованием расширения браузера или прокси), затем попробуйте отправить те же заголовки с помощью CURL - возможно, по одному, пока вы не выясните, какой заголовок (-ы) заставляет запрос работать.
curl -A [пользовательский агент] -H [заголовки] " http://something.com/api "
источник