Calendar SOAP Server Example
Jump to navigation
Jump to search
#!/usr/bin/env python # # $Id:$ # #--------------------------------------------------------------------- import sys, httplib #--------------------------------------------------------------------- SERVER_ADDR = "127.0.0.1" SERVER_PORT = 8888 CAL_NS = "http://uche.ogbuji.net/ws/eg/simple-cal" BODY_TEMPLATE = """<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:s="http://uche.ogbuji.net/eg/ws/simple-cal" xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xmlns:xsd="http://www.w3.org/1999/XMLSchema" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <SOAP-ENV:Body> <s:getMonth> <year xsi:type="xsd:integer">%s</year> <month xsi:type="xsd:integer">%s</month> </s:getMonth> </SOAP-ENV:Body> </SOAP-ENV:Envelope>""" #--------------------------------------------------------------------- def GetMonth(): year = 2007 month = 7 body = BODY_TEMPLATE%(year, month) blen = len(body) requestor = httplib.HTTP(SERVER_ADDR, SERVER_PORT) requestor.putrequest('POST', 'cal-server') requestor.putheader('Host', SERVER_ADDR) requestor.putheader('Content-Type', 'text/plain; charset="utf-8"') requestor.putheader('Content-Length', str(blen)) requestor.putheader('SOAPAction', CAL_NS) requestor.endheaders() requestor.send(body) (status_code, message, reply_headers) = requestor.getreply() reply_body = requestor.getfile().read() print "status code:", status_code print "status message:", message print "HTTP reply body:\n", reply_body #--------------------------------------------------------------------- if __name__ == "__main__": GetMonth() #---------------------------------------------------------------------
#!/usr/bin/env python # # $Id:$ # #--------------------------------------------------------------------- import sys, calendar #Import the SOAP.py machinery #from WebServices import SOAP import SOAPpy #--------------------------------------------------------------------- CAL_NS = "http://uche.ogbuji.net/eg/ws/simple-cal" #--------------------------------------------------------------------- class Calendar: def getMonth(self, year, month): return calendar.month(year, month) def getYear(self, year): return calendar.calendar(year) #--------------------------------------------------------------------- server = SOAPpy.SOAPServer(("localhost", 8888)) cal = Calendar() server.registerObject(cal, CAL_NS) print "Starting server..." server.serve_forever() #---------------------------------------------------------------------