por aseverinom » 2011-07-02 18:48 @825
Gracias por tu respuesta. Efectivamente se supone que debería ser el cliente y lo ejecuto desde la línea de comandos. He navegado bastante por los foros y no logro sacar el HTTP/1.1 500 Internal Server Error .... ¿ves algo mal en mi script? Pasa que soy nuevo en esto y lo necesito con suma urgencia, agradecería tu ayuda, gracias.
Este es el script que tengo..
#!/usr/bin/perl -w
use SOAP::Lite 'trace','debug';
use LWP::UserAgent;
use HTTP::Request::Common;
sub SOAP::Transport::HTTP::Client::get_basic_credentials {
return 'usuario' => 'clave';
}
my $server = SOAP::Lite
->uri('http://www.anpworks.cl/')
->on_action( sub { join '/', 'http://www.anpworks.cl/enlace_icomexvi' } )
->proxy('https://www.worldcomex.com/application/icomexvi/enlaces_de_datos/servicio_enlace_icomexvi.asmx');
my $userAgent = LWP::UserAgent->new(agent => 'perl post');
my $message = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<Message xmlns=\"http://schemas.xmlsoap.org/soap/envelope/\">
<datos>
<usuario>usuario</usuario>
<clave>clave</clave>
<empresa>coigo</empresa>
<origen>oc</origen>
<rut_empresa>22.222.220-1</rut_empresa>
<accion>c</accion>
<key_erp></key_erp>
<fecha_desde>01-01-2010</fecha_desde>
<fecha_hasta>02-01-2010</fecha_hasta>
</datos>
</Message>";
# A dónde hacemos el post..
my $response = $userAgent->request(POST 'https://www.worldcomex.com/application/icomexvi/enlaces_de_datos/servicio_enlace_icomexvi.asmx',
Content_Type => 'text/xml',
Content => $message);
print $response->error_as_HTML unless $response->is_success;
my $doc = $response->as_string;
# Hago salto de línea
$doc =~ s/></>\n</g;
print $doc;