Steve Baker wrote:
http://www.cm.aol.com/steve/rpc/ HTTP/1.1 Accept: text/xml Accept: multipart/* Content-Length: 448 Content-Type: text/xml; charset=utf-8 SOAPAction: "http://www.cm.aol.com/Demo#hi"<?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/1999/XMLSchema"SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><namesp1:hi xmlns:namesp1="http://www.cm.aol.com/Demo"/></SOAP-ENV:Body></SOAP-ENV:Envelope>SOAP::Transport::HTTP::Client::send_receive: HTTP::Response=HASH(0x18c18e4) SOAP::Transport::HTTP::Client::send_receive: HTTP/0.9 200 (OK) EOF Client-Date: Thu, 18 Aug 2005 16:22:41 GMT Client-Peer: 10.178.2.10:80 Client-Response-Num: 1 Can't call method "result" on an undefined value at ./test1.pl line 13.
Hi,Are you by chance communicating with a Windows server? I had problems communicating using SOAP with a Windows server, though I was able to communicate with other public services (see below for example code for ones I could get to work). I was given the following article which enabled me to finally get it to work:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnsoap/html/soapliteperl.aspThe issue was with two things. One, I had to do something to "on_action" as noted below. The article has a different solution. Two, the Windows server did not like the XML that SOAP::Lite produced. Specifically, it was the data that the Windows server could not read. SOAP::Lite produced XML that added a namespX: at the front of the data tag, e.g.
<namesp2:SOMENAME DATANAME xsi:type="xsd:string">data</DATANAME> while the Windows server expected: <DATANAME xsi:type="xsd:string">data</DATANAME>Strangely enough, I can't re-create what was going wrong right now so what you see above is partially from memory.
I implemented the suggestions in the above article and it started working. Example of other services that I got to work, no problem: use SOAP::Lite +trace => [qw(transport debug)], on_action => sub {sprintf '%s/%s', @_}; my $response; my $s = SOAP::Lite -> uri('/examples') -> on_action(sub { sprintf '"%s"', shift }) -> proxy('http://superhonker.userland.com/') ;print '\n\n State '.$s->getStateName(SOAP::Data->name(statenum => 25))->result ;
$s = SOAP::Lite -> uri('urn:xmethods-CurrencyExchange') -> proxy('http://services.xmethods.net/soap'); $response = $s->getRate(SOAP::Data->name(country1 => 'England'), SOAP::Data->name(country2 => 'Japan')) ->result; print 'Currency rate for England/Japan is ', $response; Take care, Kurt [EMAIL PROTECTED]
smime.p7s
Description: S/MIME Cryptographic Signature