Tuesday, January 15, 2008

XML-RPC แบบง่ายๆ กับ python

XML-RPC เป็น Remote Procedure Call ประเภทนึงที่ใช้ XML เป็นสื่อกลางในการส่งข้อมูลผ่านตัวแปร HTTP

Python สามารถทำงานกับ XML-RPC ได้ทั้งเป็น XML-RPC Server หรือเป็น XML-RPC Proxy
พูดง่ายๆ ก็คือเราเรียกใช้ Class หรือ Function ที่อยู่บน Server ได้โดยที่ไม่ต้องเขียน Network Server เอง

Module หลักๆ ที่จะใช้ก็คือ SimpleXMLRPCServer กับ xmlrpclib
การใช้งาน server แบบง่ายๆ ก็คือ

# ตัวอย่าง class ที่อยู่บน Server


class xmlrpcsample:
def printme(textmesg):
return textmesg.upper()


ต่อไปเราก็สร้าง XML-RPC Server

# server bind เข้ากับทุก interface ที่ port 12345

address = ('0.0.0.0',12345)
server = SimpleXMLRPCServer.SimpleXMLRPCServer(address)

# สร้าง class object มา

classobj = xmlrpcsample()

# register ตัว class เข้ากับ XML-RPC server

server. register_instance(classobj)

# เริ่มทำงานได้

server.serve_forever()

เป็นอันว่าจบในส่วนของ Server ต่อไป Client จะเรียกใช้งาน Class นี่ที่อยู่บน server ก็ใช้งานง่าย

import xmlrpclib
server = xmlrpclib.ServerProxy("http://127.0.0.1:12345")
server.printme('helloworld')


เป็นอันจบ
ข้อควรระวัง function ต้อง return ค่าทุกครั้ง ถ้าไม่ return ค่า จะต้อง set allow_none=True ตอนที่เรียก ServerProxy

Comments: Post a Comment

Subscribe to Post Comments [Atom]





<< Home

This page is powered by Blogger. Isn't yours?

Subscribe to Comments [Atom]