XML-RPC
XML-RPC (сокр. от англ. Extensible Markup Language Remote Procedure Call — XML-вызов удалённых процедур) — стандарт/протокол вызова удалённых процедур, основанный на XML, является прародителем SOAP, отличается исключительной простотой применения. XML-RPC, как и любой другой интерфейс RPC, определяет набор стандартных типов данных и команд, которые программист может использовать для доступа к функциональности другой программы, находящейся на другом компьютере в сети.
Краткая история
Протокол XML-RPC был изначально разработан Дэйвом Винером из компании «UserLand Software» в сотрудничестве с Майкрософт в 1998 году. Однако корпорация Майкрософт вскоре сочла этот протокол слишком упрощённым, и начала расширять его функциональность. После нескольких циклов по расширению функциональности, появилась система, ныне известная как SOAP. Позднее Майкрософт начала широко рекламировать и внедрять SOAP, а изначальный XML-RPC был отвергнут. Но, несмотря на отвержение Майкрософт, стандарт XML-RPC очаровал многих программистов своей необычайной простотой и, за счёт этого, существует по сей день и даже постепенно набирает популярность.
Типы данных
| Имя типа | Пример тега | Описание типа |
|---|---|---|
| array |
<source lang="xml"> <array>
<value><i4>1404</i4></value>
<value><string>Что-нибудь здесь</string></value>
<value><i4>1</i4></value>
</array>
</source> |
Массив величин, без ключей |
| base64 | <source lang="xml"><base64>eW91IGNhbid0IHJlYWQgdGhpcyE=</base64></source> | Кодированные в Base64 двоичные данные |
| boolean | <source lang="xml"><boolean>1</boolean></source> | Логическая (булева) величина (0 или 1) |
| date/time | <source lang="xml"><dateTime.iso8601>19980717T14:08:55</dateTime.iso8601></source> | Дата и время |
| double | <source lang="xml"><double>-12.53</double></source> | Дробная величина двойной точности |
| integer | <source lang="xml"><i4>42</i4></source> | Целое число |
| string | <source lang="xml"><string>Здравствуй, Мир!</string></source> | Строка символов (в той же кодировке, что и весь XML-документ) |
| struct |
<source lang="xml"> <struct>
<member>
<name>Что-то</name>
<value><i4>1</i4></value>
</member>
<member>
<name>Ещё что-то</name>
<value><i4>2</i4></value>
</member>
</struct>
</source> |
Массив величин, с ключами |
| nil | <source lang="xml"><nil/></source> | Нулевая (пустая) величина — это расширение XML-RPC |
Примеры
Типичный пример запроса XML-RPC: <source lang="xml">
<?xml version="1.0"?>
<methodCall>
<methodName>examples.getStateName</methodName>
<params>
<param>
<value><i4>41</i4></value>
</param>
</params>
</methodCall>
</source>
Типичный пример ответа на запрос XML-RPC: <source lang="xml">
<?xml version="1.0"?>
<methodResponse>
<params>
<param>
<value><string>South Dakota</string></value>
</param>
</params>
</methodResponse>
</source>
Типичный пример отчёта об ошибке в запросе XML-RPC: <source lang="xml">
<?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>
</source>
См. также
Ссылки
- Официальный сайт XML-RPC
- XML-RPC for PHP (PHPXMLRPC) — библиотека для ускорения разработки веб-сервисов (написана создателем самого протокола XML-RPC)
- Пишем свой web-сервис на PHP и XML-RPC — статья о технологии на phpclub.ru
- .Net реализация XML-RPC
- Форум XML-RPC
- Руководства по XML-RPC
- Технологические отчёты по XML-RPC
- Jabber-RPC — XML-RPC по протоколу XMPP
- Apache, XML-RPC и безопасность
ar:XML-RPC bg:XML-RPC ca:XML-RPC cs:XML-RPC de:XML-RPC en:XML-RPC es:XML-RPC fr:XML-RPC it:XML-RPC ja:XML-RPC ko:XML-RPC pl:XML-RPC pt:XML-RPC uk:XML-RPC zh:XML-RPC
Если вам нравится SbUP.com Сайт, вы можете поддержать его - BTC: bc1qppjcl3c2cyjazy6lepmrv3fh6ke9mxs7zpfky0 , TRC20 и ещё....