http://www.perlmonks.org?node_id=902907


in reply to Re^4: checkVat - SOAP::Lite
in thread checkVat - SOAP::Lite

I forgot to say, the SOAP::Simple generated soap request returns 200 OK and data
$VAR1 = { 'parameters' => { 'requestDate' => '2011-05-04+02:00', 'vatNumber' => '1234567890', 'valid' => 0, 'countryCode' => 'IE' } };

Replies are listed 'Best First'.
Re^6: checkVat - SOAP::Lite
by DreamT (Pilgrim) on May 04, 2011 at 15:50 UTC
    Nice!
    Unfortunately, we're not in control of the server that we're installing it to, so installing SOAP::Simple isn't an alternative. So I copied your xml output and did it the ugly way:
    #!/usr/bin/perl -w use strict; use LWP::UserAgent; use HTTP::Request::Common; my $userAgent = LWP::UserAgent->new(agent => 'perl post'); my $message = qq^<?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/env +elope/"> <SOAP-ENV:Body> <tns1:checkVat xmlns:tns1="urn:ec.europa.eu:taxud:vies:services:ch +eckVat:types"> <tns1:countryCode>IE</tns1:countryCode> <tns1:vatNumber>1234567890</tns1:vatNumber> </tns1:checkVat> </SOAP-ENV:Body> </SOAP-ENV:Envelope>^; my $response = $userAgent->request(POST 'http://ec.europa.eu/taxation_ +customs/vies/services/checkVatService', Content_Type => 'text/xml', Content => $message); print $response->error_as_HTML unless $response->is_success; print $response->as_string;
    However, I will of course push for getting the SOAP::Simple installed on the target server, but this solved the immediate problem. Thanks!