0

場合によっては、別のスクリプトにリダイレクトし、すべてのクエリ パラメータを送信する必要がある Perl スクリプトがあります。クエリ パラメータには大量のデータが含まれる可能性があるため、乱雑に見える POST 文字列を作成して追加したくありません。いくつかの調査に基づいて、私はこれを思いつきました:

use strict;
use warnings;
use CGI;
use URI;

my $query = CGI->new();
my %lots_of_data = $query->Vars;

my $uri = URI->new('http://whatever.com/new_script.pl');
$uri->query_form(\%lots_of_data);

print $query->redirect(-location => $uri);

質問:

  1. それはうまくいきますか?
  2. リダイレクトに -nph または -status パラメータを使用する必要がありますか?
  3. new_script.pl は、送信されたデータを独自の CGI クエリ オブジェクトにどのように入力するのでしょうか? それとも、魔法のようにデータがクエリ オブジェクトに格納されるのでしょうか?

どうもありがとう!

4

3 に答える 3

0

パラメータを秘密にしておく必要がある場合は、POST を使用します。get で取得した場合は、URI を使用してクエリ パラメータを URL に戻します。

URI を使用する必要がない場合があります。新しい URI を $QUERY_STRING 環境変数と連結するだけでよい場合があります。

POST が必要な場合、多くの厄介なコードで終わるべきではありません。すでにすべてのパラメーターをハッシュとして取得しています。ハッシュを渡し、それを POST パラメーターに補間することができるはずです。

GET を使用できる場合は、リダイレクトが機能します。投稿が必要な場合は、WWW::MechanizeHTTP::Tiny、およびLWPが役に立ちます。

于 2013-06-07T19:15:36.950 に答える