Xml-rpc-xml-rpc-request

提供:Dev Guides
移動先:案内検索

XML-RPC-リクエスト形式

XML-RPCリクエストは、XMLコンテンツとHTTPヘッダーの組み合わせです。 XMLコンテンツは、データ型指定構造を使用してパラメーターを渡し、どのプロシージャが呼び出されているかを識別する追加情報を含みます。HTTPヘッダーは、Web経由で要求を渡すためのラッパーを提供します。

各リクエストには単一のXMLドキュメントが含まれ、そのルート要素は_methodCall_要素です。 各_methodCall_要素には、_methodName_要素と_params_要素が含まれます。 _methodName_要素は呼び出されるプロシージャの名前を識別しますが、_params_要素にはパラメーターとその値のリストが含まれます。 各_params_要素には、_value_要素を含むparam要素のリストが含まれます。

たとえば、(半径の)_Double_パラメーターを受け取る_circleArea_というメソッドにリクエストを渡すには、XML-RPCリクエストは次のようになります。

<?xml version="1.0"?>
<methodCall>
   <methodName>circleArea</methodName>
      <params>
         <param>
            <value><double>2.41</double></value>
         </param>
      </params>
</methodCall>

これらの要求のHTTPヘッダーには、送信者とコンテンツが反映されます。 基本的なテンプレートは次のようになります。

POST/target HTTP 1.0
User-Agent: Identifier
Host: host.making.request
Content-Type: text/xml
Content-Length: length of request in bytes

たとえば、circleAreaメソッドが_/xmlrpc_でリッスンしているXML-RPCサーバーから利用できる場合、リクエストは次のようになります。

POST/xmlrpc HTTP 1.0
User-Agent: myXMLRPCClient/1.0
Host: 192.168.124.2
Content-Type: text/xml
Content-Length: 169

組み立てられると、リクエスト全体は次のようになります。

POST/xmlrpc HTTP 1.0
User-Agent: myXMLRPCClient/1.0
Host: 192.168.124.2
Content-Type: text/xml
Content-Length: 169
<?xml version="1.0"?>
<methodCall>
   <methodName>circleArea</methodName>
      <params>
         <param>
            <value><double>2.41</double></value>
         </param>
      </params>
</methodCall>

これは通常のHTTPリクエストであり、慎重に構築されたペイロードがあります。