ลองเขียน web service XML-RPC php Server

PHP Knowledge เป็น บอร์ดรวามความรู้ php เน้นบทความ แนวทางการเขียนโปรแกรม บันทึกกันลืม เพื่อให้สมาชิกได้เขียนความรู้ที่ตัวเองมีให้สมาชิกท่านอื่นๆ ได้ เข้ามาอ่าน และ ไว้อ่านเองกันลืมด้วย

Moderators: mindphp, ผู้ดูแลกระดาน

Post Reply
thatsawan
PHP VIP Members
PHP VIP Members
Posts: 19782
Joined: 31/03/2014 10:02 am
Contact:

ลองเขียน web service XML-RPC php Server

Post by thatsawan » 09/12/2015 12:34 am

หลัก ๆ จะแบ่งออกเป็น 2 ส่วน

- Web Service ฝั่ง Server ที่ให้บริการ

Code: Select all

$request_xml = file_get_contents("php://input");

function hello($method_name, $args) {
    
    return "Hello ".$args[0];
}

//สร้าง xml server
$xmlrpc_server = xmlrpc_server_create();

//เหมือนเอา method ที่สร้างไว้ให้เรียก 
xmlrpc_server_register_method($xmlrpc_server, "hello", "hello");

//start the server listener
header('Content-Type: text/xml');
print xmlrpc_server_call_method($xmlrpc_server, $request_xml, array());
// เเสดงผลเป็น xml
 
ผลที่ได้

Code: Select all

<?xml version="1.0" encoding="iso-8859-1"?>
<methodResponse>
<fault>
 <value>
  <struct>
   <member>
    <name>faultString</name>
    <value>
     <string>parse error. not well formed.&#10;&#10;error occurred at line 1, column 1, byte index 0</string>
    </value>
   </member>
   <member>
    <name>faultCode</name>
    <value>
     <int>-32700</int>
    </value>
   </member>
  </struct>
 </value>
</fault>
</methodResponse>

- Web Service ฝั่ง Client ที่เรียกใช้ Web Service ฝั่ง Server

Code: Select all

$request = xmlrpc_encode_request("hello", array('rong'));
// ฝั่ง Client  request เรียกใช้งาน method hello โดยส่งค่าไปด้วย 

$context = stream_context_create(array('http' => array(
    'method' => "POST",
    'header' => "Content-Type: text/xml\r\nUser-Agent: PHPRPC/1.0\r\n",
    'content' => $request
)));


$server = 'http://localhost/xml_rpc1/server.php';
// url ที่ระบุ xmlrpc ฝั่ง server

$file = file_get_contents($server, false, $context);

$response = xmlrpc_decode($file);

echo $response;

ผลที่ได้
  • Hello rong

Post Reply

Return to “PHP Knowledge”

Users browsing this forum: No registered users and 7 guests