将PHP cURL转换为命令行curl调用

11

有很多关于将命令行curl命令转换为php cURL资源的线程。 我需要做相反的事情。 我正在尝试调试一些关键的供应商代码,并想要进行比较。 是否可能? 在Chrome中,当网络请求触发时,您可以将网络请求复制为curl命令(单个字符串!)。 我希望php curl库可以提供类似的东西吗?


这方面没有自动化工具。只需查看manpage并自行翻译选项即可。或者这是关于特定参数的吗? - mario
我没有构建涉及此问题的大型curl代码段。我希望不是通过逆向工程curl资源构建,而是通过对其命令输出进行差异比较来确定更改的参数。听起来这可能行不通。那我就开始深入研究吧。谢谢! - cdaringe
1
我不确定它是否能提供你所需要的内容,但启用CURLOPT_VERBOSE可能会提供一些有用的见解。如果您无法访问STD_ERR输出(即您不在命令行上运行),则可以使用CURLOPT_STDERR将输出重定向到文件。 - Brady Emerson
尝试使用Chrome工具中的POSTMAN是否有价值?我发现这是测试输入参数与预期输出的好方法。 - Adam T
另一种可能性是使用网络嗅探器(例如wireshark)直接分析curl执行的HTTP通信。 - Marko
这个回答解决了你的问题吗?如何将Php CURL请求转换为命令行curl - Potherca
3个回答

0

你可以使用Chrome的“开发者工具”(按F11打开)。然后你会看到“网络”选项卡。 在访问所需的URL之前打开它。 在这个选项卡中,你将看到所有对该域的请求。点击第一个请求,在右侧你将看到 另外的选项卡:“头部”,“预览”,“响应”,“Cookie”,“时间”。 在“头部”选项卡中是发送给该页面的HTTP头部。你可以在curl中使用这些头部。

编辑 -> 如果通信没有UI界面,你需要一些代理软件,比如: http://proxyworkbench.com/


感谢您的输入。但是,这不是一个选项。我有一个Apache服务器调用另一个Apache服务器。没有涉及用户界面! - cdaringe
你可以看到我修改后的帖子,了解如何做到这一点。 - fico7489

-1

步骤

  1. 安装Fiddler并启用它监听端口8888(默认)
  2. 更改PHP服务器端的CURL域代码,并确保新域指向localhost:8888。这样所有流量都将通过Fiddler路由
  3. 捕获请求并获取会话副本
  4. 比较版本

对于这个答案,我要提醒一句 - 我不熟悉 Fiddler 软件,但我还是安装了它 - 现在只有当我运行这个软件时,我的互联网连接才能工作 - 我现在正在想办法解决这个问题 - 但是对于其他人来说:除非你知道自己在做什么并理解其含义,否则请不要使用此答案。 - kris
1
Fiddler只是一个代理,位于您的浏览器和互联网之间。如果您不了解如何使用Fiddler,则应卸载它。 - Faiz Mohamed Haneef

-5

这完全与OP的要求相反。 - undefined
没错。如果你想实现相反的逻辑,你可以使用我提供的库作为辅助。它包含了所有的cURL参数和选项,这样你就不需要从头开始研究一切了。希望这能帮到你。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接