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

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

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

ภาพประจำตัวสมาชิก
thatsawan
PHP VIP Members
PHP VIP Members
โพสต์: 18041
ลงทะเบียนเมื่อ: 31/03/2014 10:02 am
ติดต่อ:

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

โพสต์โดย thatsawan » 09/12/2015 12:34 am

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

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

โค้ด: เลือกทั้งหมด


$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
 

ผลที่ได้

โค้ด: เลือกทั้งหมด

<?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

โค้ด: เลือกทั้งหมด

$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

  • Similar Topics
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

ย้อนกลับไปยัง

ผู้ใช้งานขณะนี้

กำลังดูบอร์ดนี้: 3 และ บุคคลทั่วไป 0 ท่าน