XML-RPC - формат запроса

Запросы XML-RPC представляют собой комбинацию содержимого XML и заголовков HTTP. XML-контент использует структуру типизации данных для передачи параметров и содержит дополнительную информацию, определяющую вызываемую процедуру, в то время как заголовки HTTP предоставляют оболочку для передачи запроса через Интернет.

Каждый запрос содержит один XML-документ, корневым элементом которого является элемент methodCall . Каждый элемент methodCall содержит элемент methodName и элемент params . Элемент methodName определяет имя вызываемой процедуры, а элемент params содержит список параметров и их значений. Каждый элемент params включает в себя список элементов param, которые, в свою очередь, содержат элементы значения .

Например, чтобы передать запрос методу под названием circleArea , который принимает параметр Double (для радиуса), запрос 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 был доступен с сервера XML-RPC, прослушивающего / xmlrpc , запрос мог бы выглядеть так:

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-запрос с тщательно продуманной полезной нагрузкой.