2013-08-29 120 views
0

休息的请求,我试图发送一个REST请求。系统文档给出的例子是:发送通过PHP

$ 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); 
+0

它始终是类似的东西,以了解详细信息,请参阅我的回答:

$handle = curl_init($url); curl_setopt_array($handle, [ ... CURLOPT_HTTPAUTH => CURLAUTH_DIGEST, // --digest ... ]); 

与卷曲C-API,它只是由PHP包裹比较下面解释它是如何工作的。如果您按照您应该能够* *任何命令行卷曲转化为PHP。如果没有,请打开一个新的问题,询问您遇到问题的具体部分(有些翻译并不那么容易,但大多数是1:1非常简单)。 – hakre

+0

我欣赏的响应。作为新的休息请求,我想我想问的是:是“{data”..... stuff是请求的一部分还是示例响应的一部分?我显然知道你不知道我正在使用什么系统,或者文档打算说什么,但是REST中常见的数据结构是什么? – bart2puck

+0

好的,我明白了。这是答复的一部分。请求方法是默认(GET)。用户名和密码应该清楚。上面的代码中HTTPAUTH是错误的,请参阅下面的答案,其中涵盖了该部分(我认为这是您做出的最重要的错误,可能最难查找)。 – hakre

回答

1

予先从示例的开头:

$ curl 

$号表示与标准的用户权限的UNIX shell提示符。

然后一个空格隔开这是curl这里的命令。

每个命令都(通常)手册页,你用man命令得到它:

$ man curl 

这应该解释所有其余的你,因为这些人的页面解释所有的命令开关和选项。

如果你没有在手这样的shell提示符下,你不喜欢可以考虑安装一个,许多命令有自己的手册页,以及在互联网上。这里卷曲:

你了解之后,具体的命令做了什么,你只是查找在上curl_setopt page的PHP手册中的相关选项。这是如何工作演示了下面的例子:


实施例:

$ curl --digest -u admin:<passwd> http://1.2.3.4/r/users/12345/calls/recent 
     ######## 

此开关涉及CURLOPT_HTTPAUTH设置的CURLAUTH_DIGEST值。