2013-08-29 204 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值。