&引用;锻造;(=模拟)AMFPHP远程处理请求

&引用;锻造;(=模拟)AMFPHP远程处理请求,php,mocking,amf,amfphp,Php,Mocking,Amf,Amfphp,我正在使用AMFPHP成功地将我的数据库与我的Flex应用程序链接起来。但是,我希望能够通过键入以下内容,在flash之外测试远程处理请求: 我把它放在这里吗 < P> >在问号之后,我要让浏览器(或C++ HTTP组件)调用AMFPHP服务,这样HTTP请求就不需要从Flash发起。 ,事情可能不会那么简单:你必须找出你的数据是如何编码的……/P> 作为第一步,也许您可以从gateway.php脚本,在从flash组件调用它时,将它接收到的所有内容转储到一个文件中 通过这种方式,您可以看到接收

我正在使用AMFPHP成功地将我的数据库与我的Flex应用程序链接起来。但是,我希望能够通过键入以下内容,在flash之外测试远程处理请求:

我把它放在这里吗

< P> >在问号之后,我要让浏览器(或C++ HTTP组件)调用AMFPHP服务,这样HTTP请求就不需要从Flash发起。

,事情可能不会那么简单:你必须找出你的数据是如何编码的……/P> 作为第一步,也许您可以从

gateway.php
脚本,在从flash组件调用它时,将它接收到的所有内容转储到一个文件中

通过这种方式,您可以看到接收到的数据是什么样子的(并且您可以知道它是在POST中传递的,还是在GET中传递的)


根据数据的外观,也许您可以“伪造”到服务器的请求——但我认为这不会像从浏览器调用URL那么简单……

考虑到AMFPHP网关只是一种转换机制(从/到二进制)并使用各种传入参数分派给类/方法,最后返回()数据-您可以直接针对该方法进行单元测试,从而跳过整个AMF层吗?

听起来您想从PHP调用AMF。您不能直接从浏览器执行此操作。数据将以二进制AMF格式返回,这当然是PHP或浏览器无法直接处理的。我甚至不认为它能提出这个要求

你需要一个AMF客户端来打电话和解码数据——我建议使用SabreAMF

这就是简单的客户端方法调用代码的样子

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类,以便轻松调用每个方法。

AMFPHP具有,它允许您模拟对服务器端服务的调用并查看响应。它基本上向同一个服务文件执行一个内部CURL请求,并传入您提供的参数,就像直接从客户端Flash应用程序执行一样