SOAP client

G

Glauco

I'm trying to use SOAPpy 0.10.1 for a client but is difficult to handle
easly

Is this library in use or i'm using an OLD death library ?

I'm alone in find a lot of problem in a SOAP Client ?

I'm going crazy because function are not documented .

Exist another solution for di a SOAP CLient ??



Thank's
Glauco
 
T

Thomas Weholt

I'm using Twisted for my Internet-needs and in most cases it works like a
charm. But when its SOAP support seem to be buggy. Anyway, you could give it
a try and see if you can figure out what's wrong. Twisted is a wonderful
thing.

Thomas


Nick Vargish said:
Glauco said:
I'm alone in find a lot of problem in a SOAP Client ?

No, I'm finding the SOAP thing pretty hard going myself, and I'm
usually pretty good at figuring things out for myself. I have a couple
of Perl "SOAP:Lite" scripts that I am trying to translate into Python,
and it's been quite frustrating.
I'm going crazy because function are not documented .
Exist another solution for di a SOAP CLient ??

There's ZSI, which has been called "more mature" by some people, but I
can't see much of a difference in approachability. Neither seems to be
very well documented. What I could really use are some more
examples...

Here's one of the Perl scripts I'm trying to translate:

use SOAP::Lite;
print SOAP::Lite
-> uri('urn:Temperatures')
-> proxy('http://clerkcap.house.gov/scripts/temper.pl')
-> f2c($ARGV[0])
-> result;

It's just one call. What's the Pythonic equivalent, using either
SOAP.py or the ZSI package?

Obviously, I need a better understanding of how SOAP is supposed to
work, but even that basic documentation is surprisingly hard to find
on the Web.

Nick
 
D

ddoc

Here's one of the Perl scripts I'm trying to translate:

use SOAP::Lite;
print SOAP::Lite
-> uri('urn:Temperatures')
-> proxy('http://clerkcap.house.gov/scripts/temper.pl')
-> f2c($ARGV[0])
-> result;

Doesn't work for me.
Hmm.

CPAN is very impressive, and a huge wodge of stuff downloaded, but more
work needed. I looked at the google SOAP Python example and found that
hard, but it does look interesting.
 
G

Graham Dumpleton

Nick Vargish said:
Glauco said:
I'm going crazy because function are not documented .
Exist another solution for di a SOAP CLient ??

There's ZSI, which has been called "more mature" by some people, but I
can't see much of a difference in approachability. Neither seems to be
very well documented. What I could really use are some more
examples...

Here's one of the Perl scripts I'm trying to translate:

use SOAP::Lite;
print SOAP::Lite
-> uri('urn:Temperatures')
-> proxy('http://clerkcap.house.gov/scripts/temper.pl')
-> f2c($ARGV[0])
-> result;

It's just one call. What's the Pythonic equivalent, using either
SOAP.py or the ZSI package?

Obviously, I need a better understanding of how SOAP is supposed to
work, but even that basic documentation is surprisingly hard to find
on the Web.

One of the issues with ZSI is it is more setup for use in calling
servers where
methods use named parameters. The above example, which actually
appears
uncontactable, uses positional parameters and not named parameters. To
this end, the simplest mechanism provided by ZSI to make calls, isn't
going
to work properly for various reasons.

If you are indeed only interested in servers where methods have
positional
parameters, you might have a look at the "zsirpc" module for Python.
This
module is a simple wrapper around ZSI providing a kindler interface in
the
style of the "xmlrpclib" module specifically for calling servers with
methods
using positional parameters only.

If you want to try this out without having to download the package, go
to
the address:

http://www.dscpl.com.au/soap-debugger.php

This is a web based front end around the SOAP client code which the
"zsirpc"
module provides. It will allow you to make calls against services
accessable
over the Internet to gauge whether the ZSI package is going to work
for you
in the manner that the "zsirpc" interface uses it.

The equivalent Python code using the "zsirpc" module to make the same
Perl
call as you list is:

import zsirpc

url = 'http://clerkcap.house.gov/scripts/temper.pl'
uri = 'urn:Temperatures'
action = ''

#service = zsirpc.RemoteService(url,ns=uri,soapaction=action)
service = zsirpc.RemoteService(url,ns=uri)

print service.f2c(32.5)

Unfortunately I can't verify that this works since the call times out
against that
service.

As the interface provided by "zsirpc" is simpler in that it is a much
more
restrictive interface doing one specific thing, the documentation
needed to
cover it isn't much. For that go to:

http://ose.sourceforge.net/browse.php?group=python-manual&entry=manual.htm

and then go into the chapter title "Remote Access" and look for the
documentation
on the "SOAP Gateway" to see how the client is configurable. Frankly
though, the "ns"
and "soapaction" attributes above are about as far as it goes. Do note
however,
that "zsirpc" is a subset of what is described in all that
documentation and is provided
as a separate package as a convenience. Where the documentation says
"netrpc.soap"
read it is meaning "zsirpc" and if something refers to just "netrpc",
again in code using
just "zsirpc", use "zsirpc" instead of "netrpc".

The only other bit of extensibility built in is that it has the
ability to automatically manage
types for Boolean, Binary (as BASE64), Date, DateTime, Time and
Duration. Information
about these types is described in the "Message Encoding" chapter of
the documentation.
You should ignore the bits about adding in new types as that only
applies to the framework
that "zsirpc" has been extracted from. If you did want to add news
types with "zsirpc"
you would need to drop down and use the ZSI packages way of defining
typecodes. You
might have to override an encoding method in the "zsirpc" package as
well, but can't
remember right now.

One warning, and I believe this still also applies to ZSI as well.
That is, that ZSI seems
to only interpret its own type of error response as returned by
servers. Thus, it will
work fine against a ZSI server, but use it against another server
which uses its own
means of encoding the detail associated with an error response, and
you might not
be able to do too much with it. The "zsripc" package understands the
ZSI error response
and one other which is particular to the framework it has been
extracted from, so it
doesn't do too much more to help you in that respect.

As to where you can get "zsirpc" from, go to the downloads section of:

http://ose.sourceforge.net

You might also be interested in getting down the "netrpc" package.
This contains both
a SOAP client and XML-RPC client where the interface is basically the
same with type
objects interchangeable between both. Use "netrpc" instead of "zsirpc"
and you will not
need to translate names when applying what the documentation says.
 
G

Glauco

Graham said:
Nick Vargish said:
I'm going crazy because function are not documented .
Exist another solution for di a SOAP CLient ??

There's ZSI, which has been called "more mature" by some people, but I
can't see much of a difference in approachability. Neither seems to be
very well documented. What I could really use are some more
examples...

Here's one of the Perl scripts I'm trying to translate:

use SOAP::Lite;
print SOAP::Lite
-> uri('urn:Temperatures')
-> proxy('http://clerkcap.house.gov/scripts/temper.pl')
-> f2c($ARGV[0])
-> result;

It's just one call. What's the Pythonic equivalent, using either
SOAP.py or the ZSI package?

Obviously, I need a better understanding of how SOAP is supposed to
work, but even that basic documentation is surprisingly hard to find
on the Web.


One of the issues with ZSI is it is more setup for use in calling
servers where
methods use named parameters. The above example, which actually
appears
uncontactable, uses positional parameters and not named parameters. To
this end, the simplest mechanism provided by ZSI to make calls, isn't
going
to work properly for various reasons.

If you are indeed only interested in servers where methods have
positional
parameters, you might have a look at the "zsirpc" module for Python.
This
module is a simple wrapper around ZSI providing a kindler interface in
the
style of the "xmlrpclib" module specifically for calling servers with
methods
using positional parameters only.

If you want to try this out without having to download the package, go
to
the address:

http://www.dscpl.com.au/soap-debugger.php

This is a web based front end around the SOAP client code which the
"zsirpc"
module provides. It will allow you to make calls against services
accessable
over the Internet to gauge whether the ZSI package is going to work
for you
in the manner that the "zsirpc" interface uses it.

The equivalent Python code using the "zsirpc" module to make the same
Perl
call as you list is:

import zsirpc

url = 'http://clerkcap.house.gov/scripts/temper.pl'
uri = 'urn:Temperatures'
action = ''

#service = zsirpc.RemoteService(url,ns=uri,soapaction=action)
service = zsirpc.RemoteService(url,ns=uri)

print service.f2c(32.5)

Unfortunately I can't verify that this works since the call times out
against that
service.

As the interface provided by "zsirpc" is simpler in that it is a much
more
restrictive interface doing one specific thing, the documentation
needed to
cover it isn't much. For that go to:

http://ose.sourceforge.net/browse.php?group=python-manual&entry=manual.htm

and then go into the chapter title "Remote Access" and look for the
documentation
on the "SOAP Gateway" to see how the client is configurable. Frankly
though, the "ns"
and "soapaction" attributes above are about as far as it goes. Do note
however,
that "zsirpc" is a subset of what is described in all that
documentation and is provided
as a separate package as a convenience. Where the documentation says
"netrpc.soap"
read it is meaning "zsirpc" and if something refers to just "netrpc",
again in code using
just "zsirpc", use "zsirpc" instead of "netrpc".

The only other bit of extensibility built in is that it has the
ability to automatically manage
types for Boolean, Binary (as BASE64), Date, DateTime, Time and
Duration. Information
about these types is described in the "Message Encoding" chapter of
the documentation.
You should ignore the bits about adding in new types as that only
applies to the framework
that "zsirpc" has been extracted from. If you did want to add news
types with "zsirpc"
you would need to drop down and use the ZSI packages way of defining
typecodes. You
might have to override an encoding method in the "zsirpc" package as
well, but can't
remember right now.

One warning, and I believe this still also applies to ZSI as well.
That is, that ZSI seems
to only interpret its own type of error response as returned by
servers. Thus, it will
work fine against a ZSI server, but use it against another server
which uses its own
means of encoding the detail associated with an error response, and
you might not
be able to do too much with it. The "zsripc" package understands the
ZSI error response
and one other which is particular to the framework it has been
extracted from, so it
doesn't do too much more to help you in that respect.

As to where you can get "zsirpc" from, go to the downloads section of:

http://ose.sourceforge.net

You might also be interested in getting down the "netrpc" package.
This contains both
a SOAP client and XML-RPC client where the interface is basically the
same with type
objects interchangeable between both. Use "netrpc" instead of "zsirpc"
and you will not
need to translate names when applying what the documentation says.

This is great i'll try it now !!

Glauco
 
N

Nick Vargish

ddoc said:
Doesn't work for me.
Hmm.

I haven't run it in a while... that server might just have been
a transient. I meant the example more for purposes of illustration,
anyway. :^)

Nick
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Similar Threads

SOAP client 3
Few questions on SOAP 8
Writing python SOAP client 0
SOAP client library 4
Does someone has a 5-line working example of SOAP server request? 0
SOAP Client 0
SOAPpy and callback 9
SOAP strategies 4

Members online

Forum statistics

Threads
473,756
Messages
2,569,533
Members
45,007
Latest member
OrderFitnessKetoCapsules

Latest Threads

Top