SOAP client

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Glauco

    SOAP client

    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

  • Thomas Weholt

    #2
    Re: SOAP client

    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" <[email protected] iot.net> wrote in message
    news:yyybrwj8lp [email protected] riot.net...[color=blue]
    > Glauco <glauco@sferaca rta.com> writes:
    >[color=green]
    > > I'm alone in find a lot of problem in a SOAP Client ?[/color]
    >
    > 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.
    >[color=green]
    > > I'm going crazy because function are not documented .
    > > Exist another solution for di a SOAP CLient ??[/color]
    >
    > 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:Temper atures')
    > -> 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
    >
    > --
    > # sigmask.py || version 0.2 || 2003-01-07 || Feed this to your[/color]
    Python.[color=blue]
    > print reduce(lambda[/color]
    x,y:x+chr(ord(y )-1),'Ojdl!Wbshjt i!=obwAqbusjpu/ofu?','')[color=blue]
    >
    >
    >[/color]


    Comment

    • ddoc

      #3
      Re: SOAP client

      [color=blue]
      > Here's one of the Perl scripts I'm trying to translate:
      >
      > use SOAP::Lite;
      > print SOAP::Lite
      > -> uri('urn:Temper atures')
      > -> proxy('http://clerkcap.house. gov/scripts/temper.pl')
      > -> f2c($ARGV[0])
      > -> result;[/color]

      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.
      --
      A

      Comment

      • Graham Dumpleton

        #4
        Re: SOAP client

        Nick Vargish <[email protected] iot.net> wrote in message news:<yyybrwj8l [email protected] triot.net>...[color=blue]
        > Glauco <glauco@sferaca rta.com> writes:
        >[color=green]
        > > I'm going crazy because function are not documented .
        > > Exist another solution for di a SOAP CLient ??[/color]
        >
        > 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:Temper atures')
        > -> 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.[/color]

        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:



        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:Temperatur es'
        action = ''

        #service = zsirpc.RemoteSe rvice(url,ns=ur i,soapaction=ac tion)
        service = zsirpc.RemoteSe rvice(url,ns=ur i)

        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:

        Download OSE for free. OSE is a C++ library, with some Python wrappers, containing generic classes, as well as support for event driven systems, interprocess communications and a request/reply, publish/subscribe service agent framework with RPC over HTTP interface.


        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.soa p"
        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:

        Download OSE for free. OSE is a C++ library, with some Python wrappers, containing generic classes, as well as support for event driven systems, interprocess communications and a request/reply, publish/subscribe service agent framework with RPC over HTTP interface.


        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.

        Comment

        • Glauco

          #5
          Re: SOAP client

          Graham Dumpleton wrote:[color=blue]
          > Nick Vargish <[email protected] iot.net> wrote in message news:<yyybrwj8l [email protected] triot.net>...
          >[color=green]
          >>Glauco <glauco@sferaca rta.com> writes:
          >>
          >>[color=darkred]
          >>>I'm going crazy because function are not documented .
          >>>Exist another solution for di a SOAP CLient ??[/color]
          >>
          >>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:Temper atures')
          >> -> 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.[/color]
          >
          >
          > 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:Temperatur es'
          > action = ''
          >
          > #service = zsirpc.RemoteSe rvice(url,ns=ur i,soapaction=ac tion)
          > service = zsirpc.RemoteSe rvice(url,ns=ur i)
          >
          > 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.ph...try=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.soa p"
          > 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.[/color]

          This is great i'll try it now !!

          Glauco

          Comment

          • Nick Vargish

            #6
            Re: SOAP client

            ddoc <[email protected] serve.co.uk> writes:
            [color=blue]
            > Doesn't work for me.
            > Hmm.[/color]

            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

            --
            # sigmask.py || version 0.2 || 2003-01-07 || Feed this to your Python.
            print reduce(lambda x,y:x+chr(ord(y )-1),'Ojdl!Wbshjt i!=obwAqbusjpu/ofu?','')

            Comment

            • Nick Vargish

              #7
              Re: SOAP client

              Thanks Graham, lots of useful information there...

              Nick

              --
              # sigmask.py || version 0.2 || 2003-01-07 || Feed this to your Python.
              print reduce(lambda x,y:x+chr(ord(y )-1),'Ojdl!Wbshjt i!=obwAqbusjpu/ofu?','')

              Comment

              Working...