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

2024-06-18

我有一个网络 APIhttp://something.com/api我想使用 GET 来获取响应正文。

这是我的命令:

curl "http://something.com/api"

当然,它会失败并给出错误消息。

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


如果需要在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

于 2021 年 2 月 22 日更新了最新 Chrome 的用户代理


使用代理工具,例如查尔斯·普罗克斯 http://www.charlesproxy.com/确实有助于快速完成您所要求的事情。以下是我所做的,使用此 SO 页面作为示例(截至 2015 年 7 月,使用 Charles 版本 3.10):

  1. 让 Charles 代理运行
  2. 使用浏览器发出网络请求
  3. 在 Charles Proxy 中查找所需的请求
  4. 右键单击 Charles Proxy 中的请求
  5. 选择“复制 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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用curl获取与使用Chrome完全相同的GET请求? 的相关文章

  • 如何在不使用 window.navigator 的情况下可靠地检测浏览器?

    我知道 Stack Overflow 上有一千个关于使用 JavaScript 检测浏览器的问题 我的问题是如何检测浏览器without window navigator 包括navigator userAgent 首先 澄清一下 我不需要
  • 在golang中获取TTFB(第一个字节的时间)值

    我正在尝试获取 TTFB 值和 Connect 值 c exec Command curl w Connect time connect TTFB time starttransfer Total time time total o dev
  • 如何将单引号转义为双引号转义为单引号

    以下是符合此描述的命令行示例 curl http dumbdomain com solr collection2 update json H Content type application json d add doc uid 79729
  • 设置 cookie 时中断 JavaScript 执行

    当设置 cookie 时 是否可以始终中断浏览器开发人员工具中的 javascript 执行 无需显式设置 JS 断点 document cookie 在 html head 块的开头添加此代码片段效果很好
  • 将“Authorization Bearer”哈希添加到 Net::HTTP post 请求 (Ruby)

    我怎样才能添加Authorization Bearer到 POST 请求Net HTTP 我只能在文档中找到 基本身份验证 的帮助 req basic auth user pass Source https docs ruby lang o
  • $(window).resize() 和打印预览模式

    我有一段非常简单的代码 可以在调整大小后刷新窗口 window resize function location reload 当我尝试在 Chrome 中打开打印预览模式 Ctrl P 时 它也会刷新它 有什么想法如何避免这种行为吗 要确
  • 如何列出我的应用程序以供下载文件?

    我想通过我的应用程序从浏览器下载文件 我正在尝试将我的应用程序列在complete action using对话 它显示其他操作 例如查看文件等 但在下载文件的情况下 它不会显示在对话框中 我怎样才能像图片中那样列出我的应用程序 我在我的活
  • 如何单击网络浏览器控件中的按钮?

    例如 使用代码并且没有用户输入 我如何让我的程序点击 google 上的 搜索 按钮 假设我已经填写了搜索框并且位于 google com webBrowser1 Navigate http www google com 如果你有一个ID用
  • 在 CURL 中设置多部分/混合请求的部分内容类型

    我想在一个 http 请求中发送 json 请求和多个文件 我在用着multipart mixed要求那个 curl H Content Type multipart mixed F email protected cdn cgi l em
  • 是否可以使用 PHP 重定向发送 POST 数据?

    更新 这不是重复的如何使用 PHP 发送 POST 请求 https stackoverflow com questions 5647461 how do i send a post request with php 那里的解决方案对我不起
  • 为什么同一个curl命令在windows和linux下输出不同的东西?

    为什么同样的curl o file https www link com 命令输出不同的东西 例如 如果我运行命令curl o source txt https www youtube com playlist list PLIx6Fwnp
  • 使用 SSL 证书验证 Web 浏览器

    是否可以使用 ssl 证书对 Web 浏览器进行身份验证 假设我在应用程序中存储私钥 有什么方法可以从浏览器读取密钥并尝试基于该私钥进行身份验证 您可以使用 SSL TLS 客户端证书身份验证来对浏览器 用户进行身份验证 服务器必须请求客户
  • 在 PHP 中使用 Curl 将获取字段附加到 URL

    我可以使用 Curl 执行服务器端和客户端重定向 但无法通过 get 请求将 GET 字段附加到 URL 这是我的代码 post curl init curl setopt post CURLOPT URL url curl setopt
  • 从服务器下载图像(cUrl,但接受建议)C++

    我试图通过从服务器 网站 下载图像来设置旋转背景图像 并尝试使用curl 来执行此操作 但是在执行此操作方面取得了0 成功 我的代码的 缩短的 版本如下 我没有收到错误 但是 如何 临时 保存该图像以将其显示为背景 是否有图像 类型变量 或
  • 如何在NetLogo中创建迷宫墙?

    我正在尝试创建一个有 2 个出口的 5x5 网格 并在其中放置一些墙 换句话说 我想创造一个迷宫或迷宫 我想知道是否有办法使边框线变粗或仅更改补丁一侧的颜色 我想只放一名特工进去 并通过奖励他一些积分让他找到出口 Q 学习算法 有人有想法吗
  • libcurl 中不支持或禁用协议 https

    我在我的应用程序中使用 Authorize net 在 OSCOMMERCE 中 当用户付款时返回空响应 我调试了一下 发现返回了这个错误 libcurl 中不支持或禁用协议 https 我正在发送一个以 https 开头的探测器 url
  • 如何使用curl根据返回的etag缓存api响应?

    这是一个简短的问题 也可能对其他人有帮助 我有一个休息服务 它将为其端点上的每个 GET 查询返回正确的 ETAG 标头 现在 我还需要创建一个curl http 客户端来查询这些端点并使用etag 根据我的理解 在使用curl发出第一个请
  • 在 PHP 中处理 PUT/DELETE 参数

    我正在做我的CodeIgniter 的 REST 客户端库 http github com philsturgeon codeigniter restclient我正在努力弄清楚如何在 PHP 中发送 PUT 和 DELETE 参数 在一些
  • 如果doctype是html as HTML5,IE6是哪种模式?

    如果网页的文档类型为 HTML5 IE6 的渲染模式是什么 The 文档兼容模式 tells CSS1兼容 它看起来是标准模式 而不是怪异模式 但是 这是真的吗 IE6 是在 HTML5 术语诞生之前发布的 IE6如何识别HTML5文档类型
  • Http_Request2 POST 请求不起作用

    各位早上好 我正在使用 Http Request2 lib 进行一些工作 并且面临这种情况 我正在尝试向某个 URL 发出 POST 请求 如果我在 url 的查询字符串上添加参数 即 request gt setUrl 127 0 0 1

随机推荐

  • .NET / C# / WPF 项目的命名约定

    NET C WPF 项目广泛接受的命名约定是什么 Microsoft 有一篇关于命名约定的内容广泛的 MSDN 文章here http msdn microsoft com en us library ms229002 aspx
  • Ruby 的 Faraday - 多次包含相同的参数

    我正在使用一个 API 该 API 迫使我多次发送相同的参数名称以级联不同的过滤条件 因此 示例 api GET 调用如下所示 GET http api site com search a b1 a b2 a b3 a c2 我使用 Far
  • 如何在 Ubuntu 中创建公共 HTML 文件夹?

    简单的问题 但由于某种原因我无法在谷歌上找到确切的答案 我在 Slicehost 上安装了全新的 Ubuntu 并且想在我的主目录中为包含一堆静态 HTML 文件的简单网站创建一个公共目录 我该怎么做呢 只是打字的问题吗mkdir publ
  • 光照不适用于 gluSphere

    这是一个简单的问题 我有点羞于寻求帮助 我正在对 gluSphere 进行简单调用来渲染球体 但是 即使我很确定我正确添加了法线和照明 它也无法正确照亮 但是 如果我添加纹理 模型会正常点亮 但它似乎总是平滑的 并且我无法将其更改为平面 这
  • 我可以订阅 Meteor Session 来获取反应式模板渲染更新吗?

    有没有办法订阅 Meteor Session 对象 以便在 Session 对象上设置数据时自动呈现反应式模板视图 特别是键 名称和值数据 我有一个与迭代时渲染 Meteor Session 对象数据相关的类似问题 这个问题的目的是特别不同
  • 如何解决 java.lang.RuntimeException: PipeMapRed.waitOutputThreads(): subprocess failed with code 2?

    我正在尝试在 Hadoop 环境中执行 NLTK 以下是我用于执行的命令 bin hadoop jar HADOOP HOME contrib streaming hadoop streaming 1 0 4 jar input user
  • Vlookup 引用不同工作表中的表数据

    我想用一个VLOOKUP函数引用了放置在与所在工作表不同的工作表中的数据表VLOOKUP书面的功能 示例 在工作表 1 的单元格 AA3 中 我想插入VLOOKUP功能 我希望该函数检查单元格 M3 中的数字 在工作表 2 范围地址 A2
  • 如何自动更新外键以具有“,on_delete = models.PROTECT”

    我正在将旧代码更新到最新的 Django 版本 外键需要 on delete models PROTECT 他们有将近一百个 如何自动添加 on delete models PROTECT 到每一个 您可以尝试在这里使用正则表达式 鉴于Fo
  • ViewPager 中的按钮滚动到特定页面

    我的 ViewPager 内的布局之一有一个按钮 R layout add site 我想要点击按钮的选项 它会滚动到我的特定页面 我已经可以选择滑动到特定页面 但我想同时拥有这两个选项 现在我确信有办法做到这一点 但由于某种原因 我无法弄
  • 海量记录的bulk_create最佳实践

    I use bulk create将 1 mio 记录插入到新表中 需要 80 秒 Django 只使用一个 CPU 核心 大约 25 CPU 但没有一个核心达到 100 我相信有改进的潜力 这是代码 class Stock models
  • NUnit 测试项目的 log4net 配置部分

    我正在使用名为 AssemblyTest nunit 的项目运行 NUnit 该测试调用另一个使用 log4net 程序集的程序集 这是使用 nunit 版本 2 4 3 和 net 2 0 框架 在 TestFixtureSetup 中
  • 排序矩阵的选择算法

    这是谷歌面试问题 给定一个 N N 矩阵 所有行均已排序 所有列均已排序 找到矩阵的第 K 个最大元素 在 n 2 中执行它很简单 我们可以使用堆或合并排序 n lg n 对它进行排序 然后得到它 但是有没有更好的方法 比 n lg n 更
  • 如果内存是字节可寻址的,为什么我们需要对齐填充?

    既然我们可以单独寻址内存的每个字节 为什么编译器要格外小心以确保结构及其成员与内存中的 32 位边界对齐 我在这里可能是错的 但是在 32 位系统上 从 0x0800 开始获取 4 个字节是不是和从 0x0801 开始获取 4 个字节一样快
  • 在 C# 中,当有人插入、删除或修改记录时,如何从 MySQL 获取事件?

    我正在 WPF Net 中开发一个程序 我需要知道何时有人对数据库的任何表进行更改 这个想法是在数据库发生更改时从数据库接收一个事件 我读了很多文章 但找不到解决我的问题的方法 亲切的问候 最好的解决方案是使用消息队列 在您的应用程序向数据
  • 如何将 PowerShell cmdlet 或函数添加到我的计算机以使其始终可用?

    如果我找到 或创建 新的 PowerShell cmdlet 或函数 如何将其添加到我的计算机 我是否将其复制到特定文件夹 我是否将其内容放入特定文件中 我是否需要授权 签名或以某种方式给予许可 我不想只在一次会话中使用它 我希望每当我在此
  • 如何检查注册表项是否存在

    我不知道我的错误在哪里 它总是跳到else分支 但是密钥存在 我检查了几次 var reg TRegistry begin with TRegistry Create do try RootKey HKEY CURRENT USER Ope
  • 在 PHP 中 POST Base64 编码数据

    我需要使用 cURL 将一些数据 POST 到 PHP 页面 并且该请求包含三个参数 其中两个是常规文本值 一种是Base64编码的文件 我注意到 Base64 值在传输过程中被损坏 这是发送请求的代码 filename img2 jpg
  • AUGraphInitialize添加kAudioUnitSubType_Reverb2到AUGraph时出现错误代码-10868

    我正在尝试添加 AudioUnit 类型kAudioUnitSubType Reverb2 to an AUGraph我得到了 10868 kAudioUnitErr FormatNotSupported 支持的错误AUGraphIniti
  • 规则永远不会减少,了解原因

    我正在学习使用 YACC 但我真的无法理解一些错误 我想知道为什么当我尝试使用 y 文件生成解析器时会出现此错误 这是我的 y 文件 它代表 Pascal 语言的上下文无关语法 Program program ident declarati
  • 如何使用curl获取与使用Chrome完全相同的GET请求?

    我有一个网络 APIhttp something com api我想使用 GET 来获取响应正文 这是我的命令 curl http something com api 当然 它会失败并给出错误消息 当我使用 Chrome 并输入上面的网址时