如何将Php CURL请求转换为命令行curl

33
如何将以下 PHP Curl 请求翻译为 Curl 可执行命令。
 $curlOpts = array(
                    CURLOPT_PORT           => "3000",
                    CURLOPT_URL            => 'www.example.com',
                    CURLOPT_RETURNTRANSFER => true,
                    CURLOPT_HTTPHEADER     => array("Cookie: connect.sid=aASD234SDFfds", "content-type:application/json"),
                    CURLOPT_POST           => true,
                    CURLOPT_POSTFIELDS     => {"email": "test.com",  
   "password": "123456"},
                );

curl_setopt_array($ch, $curlOpts);
 $output = curl_exec($ch);

我想要的受人尊敬的Curl命令

curl -X GET --header 'Accept: application/json' 'http://www.example.com?sort=clicks&order=des'


curl -X POST --header 'Content-Type: application/json' --header 'Accept: application/json' -d '{ \ 
   "email": "test.com", \ 
   "password": "123456" \ 
 }' 'http://example.com/login'

请帮我做同样的事情。


1
只要认真阅读cURL的手册,你就能够自己完成这个任务;-) 信息 1 ------ 信息 2 - Alex Odenthal
只需放置所需的事物和变量,并根据需要构建字符串,这并不是什么大问题... - codtex
Php的curl函数没有返回curl命令的url?@AlexOdenthal - HItesh Tank
你的问题与编程无关,而且有点太宽泛了,请下次尽量更具体一些。至于你的问题,我发表了一个建议,你可以从那里开始。干杯。 - Gergely Lukacsy
14
这个问题完全没问题,与编程有关,我也在寻找将PHP curl调用提取为命令行命令的解决方案。 - talsibony
3个回答

3
请注意这只是一种解决方法。
尝试在Postman中组装您的 http 请求,它是一个非常丰富的测试 API 工具。它是一个 Chrome 插件,并可从 Chrome 网上应用店免费获取(链接)。或者,你也可以从他们的网站上安装它作为独立客户端。
它有一个不错的功能,让你抓取 curl 命令以你喜欢的不同语言/格式包裹的方式。在你的情况下,还有 BASH。
然后将请求组合起来:
1. 单击 "代码" (保存按钮正下方) 2. 从下拉列表中选择 "cURL" 3. 单击 "复制到剪贴板"
...就是这样了,你就有了预先格式化的 cURL 命令行。
另外,有一个工具叫做cURL-to-PHP,它是用 JavaScript 编写的,可以完成您想要完成的确切操作。
如果您花些时间,就可以轻松地将转换器逻辑翻译为 PHP (例如,您不需要研究 cURL 内部的每个方面)。

1
谢谢您的回答,但我想使用PHP代码动态生成并存储到日志文件中。 - HItesh Tank
我明白了。不幸的是,没有PHP工具可以做到这一点,但你可以看看cURL-to-PHP。它基本上正在用JavaScript编写实现你想要的功能。如果你愿意花时间,你可以轻松地将转换器代码翻译成PHP。 - Gergely Lukacsy
2
这并没有真正回答问题,因此不能被接受为“解决方案”。 - ChristoKiwi
cURL-to-PHP完全相反于OP所请求的内容。 - undefined

3

从我所了解的情况来看,当您将其发送到外部服务时,它似乎并不起作用。 - Patrick
@Patrick,你可以随时向内置Web服务器发送请求,而不是使用外部服务作为解决方法。 - Vasily
注意eval() 语言结构非常危险,因为它允许执行任意的 PHP 代码。因此,不建议使用它。如果您仔细验证后发现没有其他选择而必须使用此结构,请特别注意在未经适当验证之前不要传递任何用户提供的数据。 - Yidir

1
点击下面的链接查看CURL的PHP常量值。 例如,当您通过print_r($curlout)检查curlopt数组时,您将获得所有的常量值。
数组([78] => 30 [19913] => 1 [13] => 120 [32] => 0 [10018] => storeden-php-1.1b [10023] => Array([0] => key:f2e7fd282883935b7a52ae4757917e1ec6026076368641084feec997023001099 [1] => exchange:a5622d643d09785a679c381238a067cfb60edf0c2bdd290b6a1435d50e [2] => Expect:)[10002] => ApiURL)

https://gist.github.com/bayleedev/4626922

检查上面的数组键,其中定义了常量值CURLOPT_URL......................10002
使用上述常量标识符,并在Postman中添加相应的标识符。
之后,您可以使用curl转换将PHP代码转换为curl命令行,并进行代码检查。
希望对您有所帮助。

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