我正在尝试发送一个REST请求。系统文档给我的例子是:
$ curl --digest -u admin:<passwd> http://1.2.3.4/r/users/12345/calls/recent
{"data": [
{"state_msg": "Finished",
"code": 200,
"dst_codecs": "PCMU,PCMA,iLBC,telephone-event",
"src_codecs": "PCMU,PCMA,telephone-event,iLBC",
"pid": 1250018007,
"url": "/r/users/12345/calls/1250018007:16739",
[...]
}
[...]
]}
这个例子想告诉我什么?那里的数据信息是什么?这是我需要寄的吗。如果是,我将如何发送?我读过这篇文章:用PHP调用一个REST API,但我仍然不确定如何构造我的调用。会是这样的吗?
$data = array('state_msg' => 'state_msg','code'=>'200'.....);
curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($curl, CURLOPT_USERPWD, "admin:<password>");
curl_setopt($curl, CURLOPT_URL, "http://1.2.3.4/r/users/12345/calls/recent");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
我从示例的开头开始:
$ curl
$
符号表示具有标准用户权限的unix shell提示符。
然后用一个空格分隔命令,这里是curl
。
每个命令(通常)都有一个手动页面,您可以通过man命令获得:
$ man curl
这应该会向您解释其余的内容,因为这些手册页解释了所有的命令开关和选项。
如果你手头没有这样的shell提示,并且你不想考虑安装它,那么许多命令在互联网上也有它们的手册页。这里是卷曲:
- http://curl.haxx.se/docs/manpage.html
在您了解了该具体命令的作用之后,只需在curl_setopt
页面上查找PHP手册中的相关选项。下面的例子演示了它的工作原理:
- 将命令行cURL转换为PHP cURL
示例:
$ curl --digest -u admin:<passwd> http://1.2.3.4/r/users/12345/calls/recent
########
此开关与CURLOPT_HTTPAUTH
设置的CURLAUTH_DIGEST
值有关。
$handle = curl_init($url);
curl_setopt_array($handle, [
...
CURLOPT_HTTPAUTH => CURLAUTH_DIGEST, // --digest
...
]);
与刚刚用PHP包装的Curl C-API进行比较:
- 如何使用libcurl使用摘要身份验证发布http请求