Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Python > Problems getting Python client (SOAPpy) to consume .NET web services

Reply
Thread Tools

Problems getting Python client (SOAPpy) to consume .NET web services

 
 
Michael Hatmaker
Guest
Posts: n/a
 
      09-13-2004
I have begun experimenting with web services, and I created some
simple web services in C# and was able to install them with IIS and
create an equally simple C# client to consume them.

My next experiment was to use Python to consume these same web
services, and even though I am able to get Python to consume web
services from a variety of sources (Apache SOAP, Glue, AXIS), I cannot
get web services created with MS.NET to work. Actually, methods with
no arguments work fine, but any methods that take arguments do not
work. There is no error, it is simply that an incorrect result is
returned (i.e. my simple Add(int a, int b) web service always returns
zero).

I tried playing around with the
[SoapDocumentService(Use=SoapBindingUse.Literal,
ParameterStyle=SoapParameterStyle.Wrapped)] arguments in .NET, but I
have had no success as of yet. I don't think it's just me since I
cannot consume any of the web services on webmethods.net that are
created using MS.NET.

My Python code looks something like this:

from SOAPpy import WSDL
server = WSDL.Proxy('http://localhost/MyWebServices/FirstService.asmx?WSDL')
server.SayHello() # works correctly - just prints a hello message
server.Add(3, 4) # does not work - returns zero

Any tip that would point me in the right direction would be greatly
appreciated!
 
Reply With Quote
 
 
 
 
Benjamin Niemann
Guest
Posts: n/a
 
      09-14-2004
Michael Hatmaker wrote:

> I have begun experimenting with web services, and I created some
> simple web services in C# and was able to install them with IIS and
> create an equally simple C# client to consume them.
>
> My next experiment was to use Python to consume these same web
> services, and even though I am able to get Python to consume web
> services from a variety of sources (Apache SOAP, Glue, AXIS), I cannot
> get web services created with MS.NET to work. Actually, methods with
> no arguments work fine, but any methods that take arguments do not
> work. There is no error, it is simply that an incorrect result is
> returned (i.e. my simple Add(int a, int b) web service always returns
> zero).
>
> I tried playing around with the
> [SoapDocumentService(Use=SoapBindingUse.Literal,
> ParameterStyle=SoapParameterStyle.Wrapped)] arguments in .NET, but I
> have had no success as of yet. I don't think it's just me since I
> cannot consume any of the web services on webmethods.net that are
> created using MS.NET.
>
> My Python code looks something like this:
>
> from SOAPpy import WSDL
> server = WSDL.Proxy('http://localhost/MyWebServices/FirstService.asmx?WSDL')
> server.SayHello() # works correctly - just prints a hello message
> server.Add(3, 4) # does not work - returns zero
>
> Any tip that would point me in the right direction would be greatly
> appreciated!

I tried this some time before, too. Actually cannot remember, if I finally
succeeded. I think using keyword arguments in Python got me one step further, e.g.:
server.Add(a=3, b=4)
 
Reply With Quote
 
 
 
 
Michael Hatmaker
Guest
Posts: n/a
 
      09-15-2004
Nice catch! Actually, I had tried that once, but there is one more
trick to make this work (that I had since added). You must add the
following line in your C# web service (I put it before the
[WebService(Namespace=...] line):

[SoapDocumentService (Use=SoapBindingUse.Encoded)]

(and I also think you need to import the following

using System.Web.Services.Protocols;
using System.Web.Services.Description;
using System.Xml.Serialization;

So for anyone else that is having this problem, the solution is the
combination of the two: (1) You must ad the [SoapDocumentService
(Use=SoapBindingUse.Encoded)] line to your web service (along with all
the appropriate "using" statements shown above) and (2) you must
specify the arguments by name in the method call like "server.Add(a=3,
b=5)".

Phew. Thanks again for making me go back and take a look at that named
arguments thing. I still don't know if there is hope for using a .NET
web service that I didn't write (such as those on www.xmethods.net),
but I'll be sure to let everyone know if I find a solution.

Benjamin Niemann <(E-Mail Removed)> wrote in message news:<ci6ana$445$(E-Mail Removed)>...
> Michael Hatmaker wrote:
>
> > I have begun experimenting with web services, and I created some
> > simple web services in C# and was able to install them with IIS and
> > create an equally simple C# client to consume them.
> >
> > My next experiment was to use Python to consume these same web
> > services, and even though I am able to get Python to consume web
> > services from a variety of sources (Apache SOAP, Glue, AXIS), I cannot
> > get web services created with MS.NET to work. Actually, methods with
> > no arguments work fine, but any methods that take arguments do not
> > work. There is no error, it is simply that an incorrect result is
> > returned (i.e. my simple Add(int a, int b) web service always returns
> > zero).
> >
> > I tried playing around with the
> > [SoapDocumentService(Use=SoapBindingUse.Literal,
> > ParameterStyle=SoapParameterStyle.Wrapped)] arguments in .NET, but I
> > have had no success as of yet. I don't think it's just me since I
> > cannot consume any of the web services on webmethods.net that are
> > created using MS.NET.
> >
> > My Python code looks something like this:
> >
> > from SOAPpy import WSDL
> > server = WSDL.Proxy('http://localhost/MyWebServices/FirstService.asmx?WSDL')
> > server.SayHello() # works correctly - just prints a hello message
> > server.Add(3, 4) # does not work - returns zero
> >
> > Any tip that would point me in the right direction would be greatly
> > appreciated!

> I tried this some time before, too. Actually cannot remember, if I finally
> succeeded. I think using keyword arguments in Python got me one step further, e.g.:
> server.Add(a=3, b=4)

 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
consume local web service -ok consume remote service - Not OK dgleeson422111 ASP .Net Web Services 2 01-31-2010 08:02 PM
I need to consume a .NET web service in a Python client mohit Python 2 01-12-2007 07:30 PM
Problems getting Python client (SOAPpy) to consume .NET web services Michael Hatmaker ASP .Net Web Services 2 09-15-2004 04:37 AM
How to consume Web Services in Mobile Applications? Vijay ASP .Net Mobile 0 05-12-2004 06:11 AM
Adding web reference to consume multiple web services not working. Saumendra ASP .Net 0 06-24-2003 10:23 PM



Advertisments