如何使用curl获得与使用Chrome完全相同的get请求?

如何使用curl获得与使用Chrome完全相同的get请求?,curl,browser,httprequest,user-agent,simulate,Curl,Browser,Httprequest,User Agent,Simulate,我有一个web apihttp://something.com/api我想使用GET获取响应主体 这是我的命令: curl "http://something.com/api" 当然,它会失败并发出错误消息 当我使用Chrome并输入上面的url时,一切都是正确的。但是我对Firefox做了同样的事情,url给了我同样的错误消息。我尝试使用Chrome扩展DHC重复该操作,请求再次给出正确的响应。经过一些搜索,我相信curl选项--user-agent会有所不同。将用户代理设置为Chrome的

我有一个web api
http://something.com/api
我想使用GET获取响应主体

这是我的命令:

curl "http://something.com/api"
当然,它会失败并发出错误消息


当我使用Chrome并输入上面的url时,一切都是正确的。但是我对Firefox做了同样的事情,url给了我同样的错误消息。我尝试使用Chrome扩展DHC重复该操作,请求再次给出正确的响应。经过一些搜索,我相信curl选项
--user-agent
会有所不同。将用户代理设置为Chrome的正确方法是什么?或者这不是重点,问题来自其他领域?非常感谢。

检查chrome与请求一起发送的HTTP头(使用浏览器扩展或代理),然后尝试使用CURL发送相同的头-可能一次发送一个,直到您确定哪些头使请求生效


curl-A[user agent]-H[headers]“”

如果需要在curl请求中设置用户头字符串,可以使用
-H
选项设置用户代理,如:

curl -H "user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36" http://stackoverflow.com/questions/28760694/how-to-use-curl-to-get-a-get-request-exactly-same-as-using-chrome
更新的用户代理表格最新Chrome,电话:02-22-2021


使用一个代理工具,比如说,真的可以帮助你在短时间内完成你要做的事情。以下是我所做的,以本SO页面为例(截至2015年7月,使用Charles版本3.10):

  • 让Charles代理运行
  • 使用浏览器进行web请求
  • 在代理中查找所需的请求
  • 在Charles Proxy中的请求上单击鼠标右键
  • 选择“复制卷曲请求”
  • 现在,您有了一个cURL请求,可以在一个终端中运行,该终端将镜像您的浏览器发出的请求。以下是我对该页面的请求(删除cookie头):


    打开Chrome开发者工具,进入网络选项卡,提出请求(如果页面刷新,您可能需要检查“保留日志”)。在左侧找到请求,右键单击“复制为卷曲”。

    我不熟悉它。你能给我一些将用户代理设置为chrome和可能的头的真实例子吗?如果Charles支持在一个goSome API中复制/导出多个cURL请求会更好,例如ArcGIS,它只会尊重
    Accept:text/html
    头以强制html输出.cURL-代理名称是一个简短的cookie,但在“复制为卷曲”将在几分钟内过期。至少对于大多数站点来说是这样。我如何能够自动获取新的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