ウェブ|xml
[Web サービスの概要]
Web サービスは、異種システムの通信のために作成されました。その基本的な考え方は、XML ベースの HTTP リモート呼び出しを使用して、新しいプロトコルを確立する必要をなくすことです。現在、Web サービス通信には 2 つのプロトコル標準があり、1 つは XML-RPC、もう 1 つは SOAP です。 XML-RPC は比較的単純で以前に登場しましたが、SOAP はより複雑で、主に安定性、堅牢性、セキュリティ、および複雑な対話が必要な場合に使用されます。
PHP は XML-RPC と SOAP プロトコル アクセスを統合しており、どちらも xmlrpc 拡張機能に集中しています。また、PHP の PEAR では、PHP 4 であっても PHP 5 であっても、XML-RPC 拡張機能がデフォルトで統合されており、この拡張機能は xmlrpc 拡張機能とは何の関係もなく、XML-RPC プロトコル相互作用を独立して実装できます。は xmlrpc 拡張子ではありません。PEAR::XML-RPC 拡張子を使用することをお勧めします。
ここでは主に XML-RPC を使用して Web サービスの対話プロセスを簡単に説明します。詳細については、PHP マニュアルを参照することをお勧めします。
【xmlrpc拡張機能をインストールする】
xmlrpc php拡張機能がシステムにインストールされていない場合は、正しくインストールしてください。
Windows プラットフォームでは、まず、PHP インストール ディレクトリにある拡張子 php_xmlrpc.dll を C:Windows または C:Winnt ディレクトリに配置します (PHP4 の拡張子は C:phpextensions ディレクトリにあり、PHP5 の拡張子はC:phpext ディレクトリ)) )、同時に C:Windowsphp.ini または C:Winntphp.ini の extension=php_xmlrpc.dll の前にあるセミコロン「;」を削除し、Web サーバーを再起動して、 phpinfo() の XML-RPC プロジェクトで、xmlrpc 拡張機能が正しくインストールされているかどうかを確認します。
Unix/Linux プラットフォームでは、xmlrpc 拡張機能がインストールされていない場合は、PHP を再コンパイルし、設定時に --with-xmlrpc オプションを追加してから、phpinfo() をチェックして、xmlrpc が正常にインストールされているかどうかを確認してください。
(注: 以下の操作は、xmlrpc 拡張の通常のインストールに基づいています。必ず正しくインストールしてください。)
[ XML-RPC の動作原理]
XML-RPC とは、大まかに言うと、プロセス全体を意味しますXML を通信に使用することです。まず、RPC クライアントから渡された XML でカプセル化されたリクエストを処理する RPC サーバーが構築され、処理結果が XML 形式で RPC クライアントに返されます。その後、クライアントは XML を解析して必要なデータを取得します。
XML-RPCのサーバー側には、クライアントが呼び出すための既製の関数が必要であり、クライアントが送信したリクエスト内の関数とメソッドはサーバー側の関数とメソッドと一致していなければなりません。そうしないと、必要な結果が得られません。得られた。
ここで、プロセス全体を説明する簡単なコードを作成します。
【XML-RPC実践】
サーバーはxmlrpc_server_create関数を使ってサーバーを生成し、公開する必要があるRPC呼び出しインターフェースを登録し、RPCクライアントからPOSTされたXMLデータを受け取り、処理を行います。結果は XML 形式でクライアントに表示されます。
コードは以下の通りです: rpc_server.php
/**
* 関数: 呼び出すために RPC クライアントに提供される関数
* パラメーター:
* $method クライアントが呼び出す必要がある関数
* $params クライアントが呼び出す必要がある関数のパラメーター配列
* 戻り値: Return指定された呼び出し結果
*/
function rpc_server_func($method, $params) {
$parameter = $params[0];
if ( $parameter = = "get")
{
$return = 'get メソッドによるこのデータ'; }
else
{
$return = 'メソッドでもパラメータでもない';
}
return $return を指定する
}
$xmlrpc_server = xmlrpc_server_create();
xmlrpc_server_register_method($xmlrpc_server, "rpc_server", "rpc_server_func") );
$request = $HTTP_RAW_POST_DATA;
$xmlrpc_response = xmlrpc_server_call_method($xmlrpc_server, $request, null) ;
header('Content-Type: text/xml');
echo $xmlrpc_response
xmlrpc_server_destroy($xmlrpc_server);
? >
[1] [2] 次のページ