2

私は AMFPHP を使用して、データベースを Flex アプリケーションにリンクすることに成功しています。ただし、次のように入力して、フラッシュの外部でリモーティング要求をテストできるようにしたいと考えています。

http://localhost/amfphp/gateway.php?[ここに何を入れますか]

ブラウザ (または C++ http コンポーネント) が amfphp サービスを呼び出せるようにするには、疑問符の後に何を入力すればよいでしょうか。

4

4 に答える 4

5

PHPからAMF呼び出しを行いたいようです。ブラウザから直接これを行うことはできません。データはバイナリAMF形式で返されますが、もちろんPHPやブラウザでは直接処理できません。私はそれが要求をすることができるとさえ思わない。

呼び出しを行ってデータをデコードするには、AMFクライアントが必要です。SabreAMFを使用することをお勧めします。

セイバーAMFホームページ

これは、単純なクライアントメソッド呼び出しコードがどのように見えるかです。

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クラスを設定することをお勧めします。

于 2009-12-26T16:34:42.247 に答える
1

AMFPHP には、サーバー側サービスへの呼び出しをシミュレートし、応答を確認できるサービス ブラウザーがあります。基本的に、内部 CURL リクエストを同じサービス ファイルに返し、指定した引数を渡します。これは、クライアント側の Flash アプリから直接行われたかのように機能します。

于 2010-10-28T14:34:16.623 に答える
0

AMF はバイナリ形式であるため、おそらくそれほど単純ではありません。データがどのようにエンコードされているかを調べる必要があります...

最初のステップとして、gateway.phpスクリプトから、フラッシュコンポーネントから呼び出されたときに、受け取ったすべてをファイルにダンプすることができますか?

このようにして、受信したデータがどのように見えるかを確認できます (また、データが POST で渡されたのか、GET で渡されたのかがわかります)。

そのデータがどのように見えるかに応じて、サーバーへのリクエストを「偽造」できるかもしれませんが、ブラウザから URL を呼び出すだけの簡単なことではないと思います...

于 2009-12-26T13:05:39.613 に答える
0

AMFPHP ゲートウェイは、(バイナリから/バイナリへ) 変換し、さまざまな受信パラメーターを使用してクラス/メソッドにディスパッチし、最後にデータの return() を行うための単なるメカニズムであることを考慮すると、メソッドに対して直接単体テストを実行して、 AMF層全体?

于 2009-12-26T15:29:26.930 に答える