Как я могу отправить XML в CGI-программу из Perl? - PullRequest
2 голосов
/ 11 июня 2009

Я хочу отправить некоторый XML из Perl-программы в сценарий CGI, который использует XML :: Simple , чтобы принять этот XML в качестве входного и отправить XML в качестве выходного.

Есть ли способ отправить XML в CGI-скрипт из Perl? Любая помощь в этом отношении будет очень признателен.

Спасибо

Ответы [ 3 ]

2 голосов
/ 11 июня 2009

Одним из возможных решений будет использование модуля HTTP :: Request :: Common, который предоставляет некоторые полезные функции, такие как GET, POST и HEADER.

Если вы хотите использовать POST для отправки данных в удаленное приложение, вы можете сделать:

use HTTP::Request::Common;
use LWP::UserAgent;

my $url = 'http://localhost/cgi-bin/mycgi.pl';
my $xml = "<root></root>";
my $request = POST $url, Content_Type => 'text/xml; charset=utf-8', Content => $xml;
my $ua = LWP::UserAgent->new();
my $response = $ua->request($request);
if ( $response->is_success() ) {
    print $response->content();
}
else {
    warn $response->status_line, $/;
}

Надеюсь, это поможет!

0 голосов
/ 11 июня 2009

В XML нет ничего особенного: это просто текст. Отправьте его так, как если бы вы отправили любой другой текст. Есть ли что-то еще, что не работает для вас? Что ты уже пробовал?

Если у вас возникли проблемы с отправкой чего-либо в программу CGI, взгляните на такую ​​среду, как WWW :: Mechanize , которая выполняет большую часть работы цикла запросов и ответов.

0 голосов
/ 11 июня 2009

Если у вас уже есть XML в вашей программе; это всего лишь HTTP-запрос, поэтому LWP ваш друг. Особенности зависят от того, как программа CGI ожидает, что XML будет передан (например, в виде POST-данных, кодированных в форме url-данных, MIME из нескольких частей и т. Д.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...