|
I've been trying to build a MSN Search API client with Perl using SOAP::Lite to interface with the SOAP server. I'm not an expert using Perl or SOAP so any help would be appreciated.
Perl Code
use SOAP::Lite +trace; my $appID = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'; my $msn = SOAP::Lite->service( 'http://soap.search.msn.com/webservices.asmx?wsdl' ); my $response = $msn->Search( ( 'Request' => ( 'AppID' => $appID, 'Query' => 'xbox', 'CultureInfo' => 'en-US', 'SafeSearch' => 'Off', 'Requests' => ( 'SourceRequest' => ( 'Source' => 'Web', 'Offset' => 0, 'Count' => 10, 'ResultFields' => 'All' ) ) ) ) );
XML Request
<?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> <Search xmlns=""> <parameters>Request</parameters> <c-gensym4 xsi:type="xsd:string">AppID</c-gensym4> <c-gensym6 xsi:type="xsd:string">216E46FB39A188C9863A21371B087D82D6B74B23</c-gensym6> <c-gensym8 xsi:type="xsd:string">Query</c-gensym8> <c-gensym10 xsi:type="xsd:string">xbox</c-gensym10> <c-gensym12 xsi:type="xsd:string">CultureInfo</c-gensym12> <c-gensym14 xsi:type="xsd:string">en-US</c-gensym14> <c-gensym16 xsi:type="xsd:string">SafeSearch</c-gensym16> <c-gensym18 xsi:type="xsd:string">Off</c-gensym18> <c-gensym20 xsi:type="xsd:string">Requests</c-gensym20> <c-gensym22 xsi:type="xsd:string">SourceRequest</c-gensym22> <c-gensym24 xsi:type="xsd:string">Source</c-gensym24> <c-gensym26 xsi:type="xsd:string">Web</c-gensym26> <c-gensym28 xsi:type="xsd:string">Offset</c-gensym28> <c-gensym30 xsi:type="xsd:int">0</c-gensym30> <c-gensym32 xsi:type="xsd:string">Count</c-gensym32> <c-gensym34 xsi:type="xsd:int">10</c-gensym34> <c-gensym36 xsi:type="xsd:string">ResultFields</c-gensym36> <c-gensym38 xsi:type="xsd:string">All</c-gensym38> </Search> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
XML Response <?xml version="1.0" encoding="utf-8" ?> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <soapenv:Body> <soapenv:Fault> <faultcode>soapenv:Client</faultcode> <faultstring>Client Error</faultstring> <detail>Invalid request</detail> </soapenv:Fault> </soapenv:Body> </soapenv:Envelope>
As you can see, I'm getting an INVALID REQUEST. Does anyone have a working Perl example? Thanks. |