in reply to SOAP::Lite woes

Firstly, IIRC the "400 Bad request" response code from a webserver usually means you have a malformed HTTP request, so there's probably something going on with the HTTP (not SOAP) headers you're sending.

Secondly, does the service have an WSDL description? If so, please try SOAP::WSDL before trying mangle namespaces yourself. This module does 99% of the work for you in SOAP client development; it's a sub-class of SOAP::Lite that really doesn't get enough press.

-David

Replies are listed 'Best First'.
Re^2: SOAP::Lite woes
by 23skiddoo (Beadle) on Aug 29, 2007 at 19:19 UTC
    Thanks for your input. I actually got it working after reading this document: http://www.soaplite.com/2003/05/composing_messa.html . It seems that the guy on the server end misled me about the XML I was sending. He assured me that I should include the XML Declaration with what I was sending, but that is apparently not the case. I also scrubbed out any newlines for good measure. Then, everything was peachy! (He did offer WSDL access but said "I don't think you'll be able to use the wsdl though since I'm exposing complextypes"--whatever that means!)

    Thanks again!
    Mike

    fnord
      complexTypes are composite types built from simpler xsd types. Any SOAP client library that can't handle complexTypes is simply not useful. Luckily, SOAP::Lite can send and receive them just fine ;)

      Examples of complexTypes include ArrayOfInts and CustomerContact (the name of some class). The WSDL description of the service tells the client how to send and receive values of such types.

      SOAP::WSDL's primary benefit is that it *does* support whatever complexTypes are declared in the WSDL for the service... it therefor reduces the amount of work you as a client programmer must do to almost nothing.

      If you use SOAP::Lite directly, you'll have to hand-construct complexType instance values yourself using SOAP::Data et al... which is painful and error-prone. Don't do it if you don't have to.

      -David.