SOAP using ZSI talking to .NET Web Service

Russell Russell.Every at
Wed Aug 20 09:34:45 CEST 2003

And the anwer is, as shown in the working code below.  Basically it
involved setting up a class for the response and parsing the SOAP

import sys
from ZSI.client import Binding
from ZSI import *

class Request:
	def __init__(self, i, extra):
		self.i = i
		self.extra = extra

Request.typecode = TC.Struct(Request, [TC.Integer('i'),
TC.String('extra')], 'RJETestItDoc')

class Response:
	def __init__(self, RJETestItDocResult):
		self.RJETestItDocResult = RJETestItDocResult

	def __str__(self):
		return self.RJETestItDocResult

Response.typecode = TC.Struct(Response,
[TC.String('RJETestItDocResult')], 'RJETestItDocResponse')

url1 = 'http://grouse/rjetest/rjetestservice.asmx'
url1 = ''
soapaction =''
namespace = ''

host = 'XXX' # Set this to your proxy host
port = nnn   # Set this to the appropriate port on the proxy
dict = {}

i = 5
extra = 'A lovely day at the office'
trace = sys.stdout

b = Binding(url=url1, ns=namespace, host=host, port=port, nsdict=dict,
soapaction=soapaction, tracefile=trace)
b.Send(None, 'RJETestItDoc', Request(i, extra))
obj = b.ReceiveSOAP()
answer =  obj.Parse(Response)

More information about the Python-list mailing list