XML-RPC

Материал из Википедии — свободной энциклопедии
Это старая версия этой страницы, сохранённая Alecs.bot (обсуждение | вклад) в 17:19, 11 мая 2008 (робот добавил: ko:XML-RPC). Она может серьёзно отличаться от текущей версии.
Перейти к навигации Перейти к поиску

XML-RPC (сокр. от англ. Extensible Markup Language Remote Procedure Call — XML-вызов удалённых процедур) — стандарт/протокол вызова удалённых процедур, основанный на XML, является прародителем SOAP, отличается исключительной простотой применения. XML-RPC, как и любой другой интерфейс RPC, определяет набор стандартных типов данных и команд, которые программист может использовать для доступа к функциональности другой программы, находящейся на другом компьютере в сети.

Краткая история

Протокол XML-RPC был изначально разработан Дэйвом Винером из компании «UserLand Software» в сотрудничестве с Майкрософт в 1995 году. Однако корпорация Майкрософт вскоре сочла этот протокол слишком упрощённым, и начала расширять его функциональность. После нескольких циклов по расширению функциональности, появилась система, ныне известная как SOAP. Позднее Майкрософт начала широко рекламировать и внедрять SOAP, а изначальный XML-RPC был отвергнут. Но, несмотря на отвержение Майкрософт, стандарт XML-RPC очаровал многих программистов своей необычайной простотой и, за счёт этого, существует по сей день и даже постепенно набирает популярность.

Типы данных

Имя типа Пример тега Описание типа
array
<array>
  
    <value><i4>1404</i4></value>
    <value><string>Что-нибудь здесь</string></value>
    <value><i4>1</i4></value>
  
</array>
Массив величин, без ключей
base64 <base64>eW91IGNhbid0IHJlYWQgdGhpcyE=</base64> Кодированные в Base64 двоичные данные
boolean <boolean>1</boolean> Логическая (булева) величина (0 или 1)
date/time <dateTime.iso8601>19980717T14:08:55</dateTime.iso8601> Дата и время
double <double>-12.53</double> Дробная величина двойной точности
integer <i4>42</i4> Целое число
string <string>Здравствуй, Мир!</string> Строка символов (в той же кодировке, что и весь XML-документ)
struct
<struct>
  <member>
    <name>Что-то</name>
    <value><i4>1</i4></value>
  </member>
  <member>
    <name>Ещё что-то</name>
    <value><i4>2</i4></value>
  </member>
</struct>
Массив величин, с ключами
nil <nil/> Нулевая (пустая) величина — это расширение XML-RPC

Примеры

Типичный пример запроса XML-RPC:

<?xml version="1.0"?>
<methodCall>
  <methodName>examples.getStateName</methodName>
  <params>
    <param>
        <value><i4>41</i4></value>
    </param>
  </params>
</methodCall>

Типичный пример ответа на запрос XML-RPC:

<?xml version="1.0"?>
<methodResponse>
  <params>
    <param>
        <value><string>South Dakota</string></value>
    </param>
  </params>
</methodResponse>

Типичный пример отчёта об ошибке в запросе XML-RPC:

<?xml version="1.0"?>
<methodResponse>
  <fault>
    <value>
      <struct>
        <member>
          <name>faultCode</name>
          <value><int>4</int></value>
        </member>
        <member>
          <name>faultString</name>
          <value><string>Too many parameters.</string></value>
        </member>
      </struct>
    </value>
  </fault>
</methodResponse>

См. также

Ссылки