2009-12-26 57 views

回答

0

AMF being a binary format,事情可能不會是簡單的:你必須瞭解你的數據是如何編碼...

第一步,也許你可以從你gateway.php腳本,只需將它從閃存組件中調用的所有內容轉儲到文件中?

通過這種方式,您可以看到接收到的數據如何(並且您知道它是在POST中還是在GET中傳遞)。

根據數據的外觀,也許你可以「僞造」一個請求到你的服務器 - 但我認爲它不會像從瀏覽器調用URL那麼簡單。 ..

0

考慮到AMFPHP網關只是一個機制,可以將(從/到二進制)轉換爲一個具有各種傳入參數的類/方法,並最終返回一個數據 - 你可以直接單元測試該方法,從而跳過整個AMF層?

5

這聽起來像你想從PHP進行AMF調用。您無法直接從瀏覽器執行此操作。數據將以二進制AMF格式返回,這當然是PHP或瀏覽器無法直接處理的。我甚至不認爲它可以提出請求。

您需要一個AMF客戶端來撥打和解碼數據 - 我建議使用SabreAMF。

Sabre AMF homepage

這是簡單的客戶端的方法調用的代碼如下所示。

require 'SabreAMF/Client.php'; 

function make_request($param1,$param2){ 
$client = new SabreAMF_Client('http://your.server/amfphp/gateway.php'); 
return $client->sendRequest('your_amf_service.yourAMFmethod',array($param1, $param2)); 
} 

你再調用這個喜歡

$result=make_request('cow',300); 

,並返回一個數組。

你可能想用你所有的方法建立一個PHP類,所以你可以輕鬆地調用每一個。

1

AMFPHP有service browser,它允許您模擬對服務器端服務的調用並查看響應。它基本上做了一個內部的CURL請求,返回到同一個服務文件並傳遞你提供的參數,並且就像直接從客戶端Flash應用程序完成一樣。