【发布时间】:2013-08-29 23:22:49
【问题描述】:
我正在尝试发送 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",
[...]
}
[...]
]}
这个例子想告诉我什么?那里的数据信息是什么?那是我需要发送的吗?如果是这样,我将如何发送它?我已经阅读了这篇文章:Call a REST API in PHP,但我仍然不确定如何组织我的通话。会是这样吗?
$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);
【问题讨论】:
-
总是这样,要了解详细信息,请参阅下面的答案,它解释了它是如何工作的。如果您遵循这一点,您应该能够将 any curl 命令行转换为 PHP。如果没有,请打开一个新问题,询问您遇到问题的具体部分(有些不太容易翻译,但大多数都是 1:1 非常容易翻译)。
-
感谢您的回复。作为休息请求的新手,我想我想问的是: {"data"..... 是请求的一部分还是示例响应的一部分?我显然知道你不知道我正在使用什么系统,或者文档打算说什么,但是这种数据结构在 REST 中是否常见?
-
好的,我明白了。这是回应的一部分。请求方法是默认的 (GET)。用户名和密码应该清楚。您上面的代码中的 HTTPAUTH 错误,请参阅下面的答案,它涵盖了该部分(我认为这是您犯的最重要的错误,可能是最难查找的错误)。
-
我不知道您使用的是哪个操作系统,但我建议您在系统上安装 curl 并尝试您自己的请求。在任何情况下,当您处理 REST 或只是 PHP 时,在机器上安装 curl 是一种救命稻草,因为您可以使用它很容易地调试许多问题。 - curl.haxx.se/download.html - 我想说这对那些文档也很重要,如果它在命令行上也适用于你,你应该尝试一下。
-
好的,如果您需要在 PHP 中调试 curl 请求,您可能会发现此问答很有帮助:Php - Debugging Curl