jdudleyh has asked for the wisdom of the Perl Monks concerning the following question:

Hi monks,

I need some help with SOAP::Lite. It seems that SOAP::Lite returns a 404 error if my proxy ("endpoint URL") has a forward slash in it.

Here's my troubleshooting... I have a real web service and a mock web service that use the same WSDL (but have different host/port/service names). I can use XML Spy to successfully call both the real and the mock web service.

In XMLSpy, the real web service uses:
http://real.host.name:18082/Processes/ServiceRequest
and the mock web service uses:
http://localhost:8088/mockPortTypeEndpointBinding

In my Perl script I am able to successfully connect to the mock service using:

$soap = SOAP::Lite -> uri('http://.../') -> proxy('http://localhost:8088/mockPortTypeEndpointBinding');
but when I try with the real service:
$soap = SOAP::Lite -> uri('http://.../') -> proxy('http://real.host.name:18082/Processes/ServiceRequest');
I get a "404 Not Found" error on the proxy line.

Figuring it has to be the extra forward slash in the service name part of the proxy, I tried to escape it with a backslash -> I get the 404 error; I tried to replace it with "%2F" -> I get "400 Bad Request".

Unfortunately I don't have any control over the name of the real service.

Any ideas to try or suggestions for troubleshooting this?

Thanks

Replies are listed 'Best First'.
Re: SOAP::Lite Doesn't like services with slashes?
by Anonymous Monk on Jun 10, 2013 at 23:21 UTC
      Thanks.

      I'm now seeing the warning:
      "Content-Length header value was wrong, fixed at C:/Perl64/lib/LWP/Protocol/http.pm line 207."
      which I get for both the working mock service and the real web service.

      Still scratching my head...

        I'm now seeing the warning...

        That one is common

        Still scratching my head...

        Well, someone is going to have to examine/compare two requests, those that work against those that don't , and figure out what's different

        OTOH, I hear XML::Compile::SOAP/http://perl.overmeer.net/xml-compile/#doc has better SOAP support