2009-12-26 25 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应用程序完成一样。