0

OK... 戦略的パートナーのサイトに XML ページを投稿して、計算を行って応答コードを返すようにしようとしていますが、これも XML 経由です。

私はさまざまな PERL を使用しており、これを行うために LWP::UserAgent を使用しようとしていました...もっとエレガントな方法があれば、その方向を教えてください。

私は彼らのサーバーにアクセスしてコードを取得することができます...しかし、期待しているユーザー名とパスワードが正しくないため、サーバーへのアクセスを拒否します。ユーザー名とパスワードは実際の XML コードでは指定されていません。実際の POST メソッドの一部としてサーバーに渡されるはずですが、その方法がわかりません。

パートナーは次のフィードバックを提供します。

YOUR_XML_FILE、YOUR_USER、および YOUR_PASSWORD を、生成される XML とユーザー名とパスワードの組み合わせに置き換えます。これは、彼が perl スクリプトを持っているサーバーから行う必要があります。

wget --no-check-certificate --post-file YOUR_XML_FILE https://previewtest.clverify.com/webservice/exec -O previewsamplerequest.response.xml --http-user=YOUR_USER --http-password=YOUR_PASSWORD

これがどこで生成されるのか、または LWP::UserAgent にそれらを指定するためのオプションが何であるかはわかりません。誰かが以前にこれをやったことがありますか?

これが私のコードです:

sub ConsumerInfo {
my $cid = shift;

my $response = undef;
my $sendXML = &Create_ConsumerInfo_Request($cid);
if ($sendXML) {
    &DoXMLUpload($sendXML);

    my $browser = LWP::UserAgent->new(agent => 'perl post');
    $browser->credentials('','','username','p@ssword');
    $response = $browser->request(POST 'https://previewtest.clverify.com/webservice/exec',
        Content_Type => 'text/xml',
        Content => $sendXML);
    print "Content-type:text/html\n\n";
    print $response->error_as_HTML unless $response->is_success;
    print $response->as_string;

} else {
    &ErrorMsg("No XML Code Was Found.");
    exit;   
}
# ===============================================================
# Need to insert parser in here to convert this into an array.
# ===============================================================
return $response;
}
4

1 に答える 1

2

警告: 実際の URL とパスワードを提供しました。誰もがあなたのパートナーのサーバーに接続できるようになったので、これをできるだけ早く変更してください!!

私見これはドキュメントで見つけることができます:

$ua->credentials( $netloc, $realm, $uname, $pass )
レルムに使用されるユーザー名とパスワードを取得/設定します。$netloc は、「:」形式の文字列です。ユーザー名とパスワードは、このサーバーにのみ渡されます。

例は、認証の正しい方法を示しています。

$ua->credentials("www.example.com:80", "Some Realm", "foo", "secret");

あなたの場合、これは次のことを意味します:

$browser->credentials('previewtest.clverify.com:443','yourRealm','321321','Eep789SHag@');
于 2012-01-24T17:03:38.593 に答える