SlideShare a Scribd company logo
1 of 11
XML-RPC ,[object Object],[object Object],[object Object],[object Object]
¿XML-RPC? Es una especificacion que permite a software corriendo en diferentes SO y ambientes realizar llamadas a procedimientos sobre el internet Es una llamada a un procedimiento remoto usando HTTP y XML para la codificacion
¿Quienes lo usan? ,[object Object],[object Object],[object Object],[object Object]
Llamada XML-RPC <?xml version=&quot;1.0&quot;?> <methodCall> <methodName>jibberjobber.getContacts</methodName> <params> <param> <value><struct> <member><name>name</name> <value><string>John</string></value> </member> <member><name>lname</name> <value><string>Doe</string></value> </member> </struct></value> </param> </params> </methodCall>
Tipos de Datos
Struct y Array <struct> <struct> <member> <name>name</name> <value><string>John</string></value> </member> <member> <name>age</name> <value><i4>21</i4></value> </member> </struct> <array> <array> <data> <value><i4>12</i4></value> <value><string>Egypt</string></value> <value><boolean>0</boolean></value> <value><int>-31</int></value> </data> </array>
Respuestas XML <?xml version=&quot;1.0&quot;?>  <methodResponse>  <params>  <param>  <value><string>South Dakota</string></value>  </param>  </params>  </methodResponse> <?xml version=&quot;1.0&quot;?>  <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>
Libreria http://phpxmlrpc.sourceforge.net/
Ejemplo Servidor <?php include( 'xmlrpc/xmlrpc.inc' ); include( 'xmlrpc/xmlrpcs.inc' ); $xmlrpc_defencoding = &quot;UTF8&quot;; $xmlrpc_internalencoding = 'UTF-8'; function getStructValue( &$struct, $key ) { if( $struct->structMemExists( $key ) ) { $val = $struct->structMem($key); return $val->scalarVal(); } else { return false; } }
Continua function add( $params ) { global $xmlrpcerruser; $struct = $params->getParam(0);  $name = getStructValue( $struct, 'name' ); // Aqui se prueba si el usuario esta autorizado if( true ){ $struct = array( 'id' => new xmlrpcval( $id, 'int' ),  'dateCreated' => new xmlrpcval( $data['dateCreated'], 'dateTime.iso8601' ) ); return new xmlrpcresp( new xmlrpcval( $struct, 'struct' ) ); } else {  return new xmlrpcresp( 0, $xmlrpcerruser,, &quot;The login failed&quot; ); } } $s = new xmlrpc_server( array( &quot;example.add&quot; => array(&quot;function&quot; => &quot;add&quot;), ) ); ?>
Ejemplo del cliente <?php include( 'xmlrpc/xmlrpc.inc' ); include( 'xmlrpc/xmlrpcs.inc' ); $client = new xmlrpc_client( &quot;http://127.0.0.1/barcamp/xml-rpc.php&quot; ); $client->setDebug( 2 ); $struct = array(  'username' => new xmlrpcval('demo', 'string'),  'password' => new xmlrpcval('demo', 'string' ), 'name' => new xmlrpcval('John', 'string' ) ); $message = new xmlrpcmsg( &quot;example.add &quot;, array( new xmlrpcval( $struct, 'struct' ) ) ); $response = $client->send( $message );   ?>

More Related Content

What's hot

Java script.trend(spec)
Java script.trend(spec)Java script.trend(spec)
Java script.trend(spec)dynamis
 
Silex. Микрофреймворк для микроприложений
Silex. Микрофреймворк для микроприложенийSilex. Микрофреймворк для микроприложений
Silex. Микрофреймворк для микроприложенийSoftline
 
Sumahexavector
SumahexavectorSumahexavector
Sumahexavectorjbersosa
 
HTTP Interceptors com AngularJS
HTTP Interceptors com AngularJSHTTP Interceptors com AngularJS
HTTP Interceptors com AngularJSRodrigo Branas
 
変態的PHPフレームワーク rhaco
変態的PHPフレームワーク rhaco変態的PHPフレームワーク rhaco
変態的PHPフレームワーク rhacomakoto tsuyuki
 
ECMA2015 INSIDE
ECMA2015 INSIDEECMA2015 INSIDE
ECMA2015 INSIDEJun Ho Lee
 
Construcción de Extensiones y Jetpacks
Construcción de Extensiones y Jetpacks Construcción de Extensiones y Jetpacks
Construcción de Extensiones y Jetpacks ccarruitero
 
Алексей Кутумов, C++ без исключений, часть 3
Алексей Кутумов,  C++ без исключений, часть 3Алексей Кутумов,  C++ без исключений, часть 3
Алексей Кутумов, C++ без исключений, часть 3Platonov Sergey
 
Form Script
Form ScriptForm Script
Form Scriptlotlot
 
Sumahexavector
SumahexavectorSumahexavector
Sumahexavectorjbersosa
 
珠三角技术沙龙新语言场 C++11
珠三角技术沙龙新语言场 C++11珠三角技术沙龙新语言场 C++11
珠三角技术沙龙新语言场 C++11翀 周
 

What's hot (20)

Java script.trend(spec)
Java script.trend(spec)Java script.trend(spec)
Java script.trend(spec)
 
Silex. Микрофреймворк для микроприложений
Silex. Микрофреймворк для микроприложенийSilex. Микрофреймворк для микроприложений
Silex. Микрофреймворк для микроприложений
 
PHP Profiling
PHP ProfilingPHP Profiling
PHP Profiling
 
JavaScript Dynamic Loading
JavaScript Dynamic LoadingJavaScript Dynamic Loading
JavaScript Dynamic Loading
 
Sumahex
SumahexSumahex
Sumahex
 
Sumahexavector
SumahexavectorSumahexavector
Sumahexavector
 
HTTP Interceptors com AngularJS
HTTP Interceptors com AngularJSHTTP Interceptors com AngularJS
HTTP Interceptors com AngularJS
 
変態的PHPフレームワーク rhaco
変態的PHPフレームワーク rhaco変態的PHPフレームワーク rhaco
変態的PHPフレームワーク rhaco
 
ECMA2015 INSIDE
ECMA2015 INSIDEECMA2015 INSIDE
ECMA2015 INSIDE
 
JavaScript Tips
JavaScript TipsJavaScript Tips
JavaScript Tips
 
Construcción de Extensiones y Jetpacks
Construcción de Extensiones y Jetpacks Construcción de Extensiones y Jetpacks
Construcción de Extensiones y Jetpacks
 
Silex al límite
Silex al límiteSilex al límite
Silex al límite
 
JavaScript
JavaScriptJavaScript
JavaScript
 
Алексей Кутумов, C++ без исключений, часть 3
Алексей Кутумов,  C++ без исключений, часть 3Алексей Кутумов,  C++ без исключений, часть 3
Алексей Кутумов, C++ без исключений, часть 3
 
Form Script
Form ScriptForm Script
Form Script
 
Cajero
CajeroCajero
Cajero
 
Sumahexavector
SumahexavectorSumahexavector
Sumahexavector
 
Proyecto Final Android-SQLite
Proyecto Final Android-SQLiteProyecto Final Android-SQLite
Proyecto Final Android-SQLite
 
珠三角技术沙龙新语言场 C++11
珠三角技术沙龙新语言场 C++11珠三角技术沙龙新语言场 C++11
珠三角技术沙龙新语言场 C++11
 
Juan
JuanJuan
Juan
 

Viewers also liked

Amigos tutunaku
Amigos tutunakuAmigos tutunaku
Amigos tutunakurenelc
 
Carnaval San Francisco Tlahcuilocan 2014
Carnaval San Francisco Tlahcuilocan 2014Carnaval San Francisco Tlahcuilocan 2014
Carnaval San Francisco Tlahcuilocan 2014renelc
 
Cuentos Náhuatl de la Malintzin
Cuentos Náhuatl de la MalintzinCuentos Náhuatl de la Malintzin
Cuentos Náhuatl de la Malintzinrenelc
 
3er Congreso nacional nauraleza-sociedad reflexiones desde la complejidad
3er Congreso nacional nauraleza-sociedad reflexiones desde la complejidad3er Congreso nacional nauraleza-sociedad reflexiones desde la complejidad
3er Congreso nacional nauraleza-sociedad reflexiones desde la complejidadrenelc
 
Programa de feria Huamantla 2011
Programa de feria Huamantla 2011Programa de feria Huamantla 2011
Programa de feria Huamantla 2011renelc
 
Harm reduction & the web
Harm reduction & the webHarm reduction & the web
Harm reduction & the webSean Yo
 
Web 2.0 Experiential Learning
Web 2.0 Experiential LearningWeb 2.0 Experiential Learning
Web 2.0 Experiential LearningSean Yo
 
Programa de feria Tlaxcala 2011
Programa de feria Tlaxcala 2011Programa de feria Tlaxcala 2011
Programa de feria Tlaxcala 2011renelc
 

Viewers also liked (9)

Amigos tutunaku
Amigos tutunakuAmigos tutunaku
Amigos tutunaku
 
Carnaval San Francisco Tlahcuilocan 2014
Carnaval San Francisco Tlahcuilocan 2014Carnaval San Francisco Tlahcuilocan 2014
Carnaval San Francisco Tlahcuilocan 2014
 
Cuentos Náhuatl de la Malintzin
Cuentos Náhuatl de la MalintzinCuentos Náhuatl de la Malintzin
Cuentos Náhuatl de la Malintzin
 
3er Congreso nacional nauraleza-sociedad reflexiones desde la complejidad
3er Congreso nacional nauraleza-sociedad reflexiones desde la complejidad3er Congreso nacional nauraleza-sociedad reflexiones desde la complejidad
3er Congreso nacional nauraleza-sociedad reflexiones desde la complejidad
 
Programa de feria Huamantla 2011
Programa de feria Huamantla 2011Programa de feria Huamantla 2011
Programa de feria Huamantla 2011
 
Harm reduction & the web
Harm reduction & the webHarm reduction & the web
Harm reduction & the web
 
Web 2.0 Experiential Learning
Web 2.0 Experiential LearningWeb 2.0 Experiential Learning
Web 2.0 Experiential Learning
 
Programa de feria Tlaxcala 2011
Programa de feria Tlaxcala 2011Programa de feria Tlaxcala 2011
Programa de feria Tlaxcala 2011
 
Web2013
Web2013Web2013
Web2013
 

Recently uploaded

أَسَانِيدُ كُتُبِ وَأُصُولِ النَّشْرِ لِابْنِ الْجَزَرِيِّ وَالْوَصْلُ بِهَا....
أَسَانِيدُ كُتُبِ وَأُصُولِ النَّشْرِ لِابْنِ الْجَزَرِيِّ وَالْوَصْلُ بِهَا....أَسَانِيدُ كُتُبِ وَأُصُولِ النَّشْرِ لِابْنِ الْجَزَرِيِّ وَالْوَصْلُ بِهَا....
أَسَانِيدُ كُتُبِ وَأُصُولِ النَّشْرِ لِابْنِ الْجَزَرِيِّ وَالْوَصْلُ بِهَا....سمير بسيوني
 
TUYỂN TẬP 25 ĐỀ THI HỌC SINH GIỎI MÔN TIẾNG ANH LỚP 6 NĂM 2023 CÓ ĐÁP ÁN (SƯU...
TUYỂN TẬP 25 ĐỀ THI HỌC SINH GIỎI MÔN TIẾNG ANH LỚP 6 NĂM 2023 CÓ ĐÁP ÁN (SƯU...TUYỂN TẬP 25 ĐỀ THI HỌC SINH GIỎI MÔN TIẾNG ANH LỚP 6 NĂM 2023 CÓ ĐÁP ÁN (SƯU...
TUYỂN TẬP 25 ĐỀ THI HỌC SINH GIỎI MÔN TIẾNG ANH LỚP 6 NĂM 2023 CÓ ĐÁP ÁN (SƯU...Nguyen Thanh Tu Collection
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
، ژیانا ئینگلیزا ب کوردی ، ئینگلیزەکان ، راپورتی کوردی ، راپورتا مێژوی ، ژ...
، ژیانا ئینگلیزا ب کوردی ، ئینگلیزەکان ، راپورتی کوردی ،    راپورتا مێژوی ، ژ...، ژیانا ئینگلیزا ب کوردی ، ئینگلیزەکان ، راپورتی کوردی ،    راپورتا مێژوی ، ژ...
، ژیانا ئینگلیزا ب کوردی ، ئینگلیزەکان ، راپورتی کوردی ، راپورتا مێژوی ، ژ...Idrees.Hishyar
 
TUYỂN TẬP 20 ĐỀ THI KHẢO SÁT HỌC SINH GIỎI MÔN TIẾNG ANH LỚP 6 NĂM 2020 (CÓ Đ...
TUYỂN TẬP 20 ĐỀ THI KHẢO SÁT HỌC SINH GIỎI MÔN TIẾNG ANH LỚP 6 NĂM 2020 (CÓ Đ...TUYỂN TẬP 20 ĐỀ THI KHẢO SÁT HỌC SINH GIỎI MÔN TIẾNG ANH LỚP 6 NĂM 2020 (CÓ Đ...
TUYỂN TẬP 20 ĐỀ THI KHẢO SÁT HỌC SINH GIỎI MÔN TIẾNG ANH LỚP 6 NĂM 2020 (CÓ Đ...Nguyen Thanh Tu Collection
 
French Revolution (फ्रेंच राज्यक्रांती)
French Revolution  (फ्रेंच राज्यक्रांती)French Revolution  (फ्रेंच राज्यक्रांती)
French Revolution (फ्रेंच राज्यक्रांती)Shankar Aware
 

Recently uploaded (6)

أَسَانِيدُ كُتُبِ وَأُصُولِ النَّشْرِ لِابْنِ الْجَزَرِيِّ وَالْوَصْلُ بِهَا....
أَسَانِيدُ كُتُبِ وَأُصُولِ النَّشْرِ لِابْنِ الْجَزَرِيِّ وَالْوَصْلُ بِهَا....أَسَانِيدُ كُتُبِ وَأُصُولِ النَّشْرِ لِابْنِ الْجَزَرِيِّ وَالْوَصْلُ بِهَا....
أَسَانِيدُ كُتُبِ وَأُصُولِ النَّشْرِ لِابْنِ الْجَزَرِيِّ وَالْوَصْلُ بِهَا....
 
TUYỂN TẬP 25 ĐỀ THI HỌC SINH GIỎI MÔN TIẾNG ANH LỚP 6 NĂM 2023 CÓ ĐÁP ÁN (SƯU...
TUYỂN TẬP 25 ĐỀ THI HỌC SINH GIỎI MÔN TIẾNG ANH LỚP 6 NĂM 2023 CÓ ĐÁP ÁN (SƯU...TUYỂN TẬP 25 ĐỀ THI HỌC SINH GIỎI MÔN TIẾNG ANH LỚP 6 NĂM 2023 CÓ ĐÁP ÁN (SƯU...
TUYỂN TẬP 25 ĐỀ THI HỌC SINH GIỎI MÔN TIẾNG ANH LỚP 6 NĂM 2023 CÓ ĐÁP ÁN (SƯU...
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
، ژیانا ئینگلیزا ب کوردی ، ئینگلیزەکان ، راپورتی کوردی ، راپورتا مێژوی ، ژ...
، ژیانا ئینگلیزا ب کوردی ، ئینگلیزەکان ، راپورتی کوردی ،    راپورتا مێژوی ، ژ...، ژیانا ئینگلیزا ب کوردی ، ئینگلیزەکان ، راپورتی کوردی ،    راپورتا مێژوی ، ژ...
، ژیانا ئینگلیزا ب کوردی ، ئینگلیزەکان ، راپورتی کوردی ، راپورتا مێژوی ، ژ...
 
TUYỂN TẬP 20 ĐỀ THI KHẢO SÁT HỌC SINH GIỎI MÔN TIẾNG ANH LỚP 6 NĂM 2020 (CÓ Đ...
TUYỂN TẬP 20 ĐỀ THI KHẢO SÁT HỌC SINH GIỎI MÔN TIẾNG ANH LỚP 6 NĂM 2020 (CÓ Đ...TUYỂN TẬP 20 ĐỀ THI KHẢO SÁT HỌC SINH GIỎI MÔN TIẾNG ANH LỚP 6 NĂM 2020 (CÓ Đ...
TUYỂN TẬP 20 ĐỀ THI KHẢO SÁT HỌC SINH GIỎI MÔN TIẾNG ANH LỚP 6 NĂM 2020 (CÓ Đ...
 
French Revolution (फ्रेंच राज्यक्रांती)
French Revolution  (फ्रेंच राज्यक्रांती)French Revolution  (फ्रेंच राज्यक्रांती)
French Revolution (फ्रेंच राज्यक्रांती)
 

Barcamp

  • 1.
  • 2. ¿XML-RPC? Es una especificacion que permite a software corriendo en diferentes SO y ambientes realizar llamadas a procedimientos sobre el internet Es una llamada a un procedimiento remoto usando HTTP y XML para la codificacion
  • 3.
  • 4. Llamada XML-RPC <?xml version=&quot;1.0&quot;?> <methodCall> <methodName>jibberjobber.getContacts</methodName> <params> <param> <value><struct> <member><name>name</name> <value><string>John</string></value> </member> <member><name>lname</name> <value><string>Doe</string></value> </member> </struct></value> </param> </params> </methodCall>
  • 6. Struct y Array <struct> <struct> <member> <name>name</name> <value><string>John</string></value> </member> <member> <name>age</name> <value><i4>21</i4></value> </member> </struct> <array> <array> <data> <value><i4>12</i4></value> <value><string>Egypt</string></value> <value><boolean>0</boolean></value> <value><int>-31</int></value> </data> </array>
  • 7. Respuestas XML <?xml version=&quot;1.0&quot;?> <methodResponse> <params> <param> <value><string>South Dakota</string></value> </param> </params> </methodResponse> <?xml version=&quot;1.0&quot;?> <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>
  • 9. Ejemplo Servidor <?php include( 'xmlrpc/xmlrpc.inc' ); include( 'xmlrpc/xmlrpcs.inc' ); $xmlrpc_defencoding = &quot;UTF8&quot;; $xmlrpc_internalencoding = 'UTF-8'; function getStructValue( &$struct, $key ) { if( $struct->structMemExists( $key ) ) { $val = $struct->structMem($key); return $val->scalarVal(); } else { return false; } }
  • 10. Continua function add( $params ) { global $xmlrpcerruser; $struct = $params->getParam(0); $name = getStructValue( $struct, 'name' ); // Aqui se prueba si el usuario esta autorizado if( true ){ $struct = array( 'id' => new xmlrpcval( $id, 'int' ), 'dateCreated' => new xmlrpcval( $data['dateCreated'], 'dateTime.iso8601' ) ); return new xmlrpcresp( new xmlrpcval( $struct, 'struct' ) ); } else { return new xmlrpcresp( 0, $xmlrpcerruser,, &quot;The login failed&quot; ); } } $s = new xmlrpc_server( array( &quot;example.add&quot; => array(&quot;function&quot; => &quot;add&quot;), ) ); ?>
  • 11. Ejemplo del cliente <?php include( 'xmlrpc/xmlrpc.inc' ); include( 'xmlrpc/xmlrpcs.inc' ); $client = new xmlrpc_client( &quot;http://127.0.0.1/barcamp/xml-rpc.php&quot; ); $client->setDebug( 2 ); $struct = array( 'username' => new xmlrpcval('demo', 'string'), 'password' => new xmlrpcval('demo', 'string' ), 'name' => new xmlrpcval('John', 'string' ) ); $message = new xmlrpcmsg( &quot;example.add &quot;, array( new xmlrpcval( $struct, 'struct' ) ) ); $response = $client->send( $message ); ?>