2016-02-25 26 views
0

我的一個合作伙伴有一個API服務,在發佈新文件時應該發送HTTP POST請求。這需要我有一個API文件,該文件將得到這個職位,這樣說:使用PHP和RESTful API獲取和發送文件

http://myip:port/api/ReciveFile 

,並請求JSON格式的要求應該是:

{ 
    "FILE ":"filename.zip", 
    "FILE_ID":"123", 
    "FILE_DESC":"PRUPOUS_FILE", 
    "EXTRAVAR":"", 
    "EXTRAVAR2":"", 
    "USERID":" xxxxxxxxxxxx", 
    "PASSWORD":"yyyyyyyyyyy" 
} 

同時它應該發出的響應,以JSON格式如果有文件或不

{"RESULT_CODE":0,"RESULT_DESCR":""} 
{"RESULT_CODE":1001,"RESULT_DESCR":"Bad request"} 

及後,當我完成擬定的文件,我應該發回修改的文件一樣。

現在的問題是,現在基本上從我的理解他會發送我必須閱讀的變量,下載文件,併發送回應。

我不太確定如何做到這一點,任何示例代碼將受到歡迎!

+0

什麼是你的問題? –

+0

好吧似乎愚蠢,但我沒有任何想法如何做到這一點.. @AnthonyGarcia –

回答

0

我不知道問題是什麼,但如果你的意思是創建瞭如果在將數據添加到它這正是從這個問題可以理解,只是創建一個數組發生的動作JSON的成功響應您希望發送回提供商的值,並在陣列上執行json_encode,該陣列應創建json並將其作爲響應打印回來。

關於接收信息;所有你需要做的就是使用集成的curl函數或者使用包裝(Guzzle等)將原始JSON或json_decode數據輸出到一個變量中,並根據需要做任何事情。

從我讀到的問題中,你想修改它的內容。這可以通過解碼json和更改數組中的變量,然後打印修改後的JSON作爲響應來實現。

例(該使用GuzzleHTTP爲例):

$res = $client->request('GET', 'url'); 
$json = $res->getBody(); 
$array = json_decode($json, 1); // decode the json 
// Start modifying the values or adding 
$array['value_to_modify'] = $whatever; 
$filename = $array['filename']; // get filename 
// make a new request 
$res = $client->request('GET', 'url/'.$filename); 
// get the body of specified filename 
$body = $res->getBody(); 
// Return the array. 
echo json_encode($body); 

參考文獻:

http://docs.guzzlephp.org/en/latest/

+0

是,問題是我不知道如何來歸檔此,如果你能給出一個例子之實踐我能跟上將是非常好的@sergio -e-diaz –

+0

@BlediShehu我會盡量給出一個僞代碼示例。 –

+0

主要的想法是,他送我的JSON文件名,和我有下載它,併發送一個響應,如果一切都通過OK去, 在請求中,應該有一個用戶,並傳遞給我想@塞爾吉奧-E -diaz –

相關問題