1

Apache を実行しているローカル サーバーに存在するページがあります。次のように、単一の名前と値のペアを使用して GET リクエストを介してフォームを送信したいと思います。

id=item1234

この GET リクエストは、別のサーバーで処理する必要があります。このサーバーは、CGI スクリプトで変換したいページを後で返すことを制御できません。言い換えると:

  • ユーザーがフォームを送信
  • 外部リソースへの私のApacheプロキシ
  • EXTERNAL リソースがページをスローバックする
  • 私のApacheはCGIでそれを変換します(おそらく別の方法ですか?)
  • ユーザーが変更されたページを取得する

繰り返しになりますが、これは建築上の質問に似ているので、ヒントがあればありがたいです。関連するものを見つけるのに十分なほどGoogleリクエストを構造化できなかったので、いくつかのガイドに鼻を突っ込んでも役立ちます。

ありがとう。

4

2 に答える 2

2

ID「17929632」をこの CGI コード (「proxy.pl?id=17929632」) に渡すと、ブラウザでこの正確なページが表示されます。

#!/usr/bin/perl

use strict;
use warnings;

use LWP::UserAgent;
use CGI::Pretty qw(:standard -any -no_xhtml -oldstyle_urls);
print header;
print "<html>\n";
print "  <head><title>Proxy Demo</title></head>\n";
print "  <body bgcolor=\"white\">\n";

my $id = param('id') || die "No CGI param 'id'\n";

my $ua = LWP::UserAgent->new;
$ua->agent("MyApp/0.1 ");

# Create a request
my $req = HTTP::Request->new(GET => "http://stackoverflow.com/questions/$id");

# Pass request to the user agent and get a response back
my $response = $ua->request($req);

# Check the outcome of the response
if ($response->is_success) {
  my $content = $response->content;
  # Modify the original content here!
  print $content;
}
else {
  print $response->status_line;
}

print "</body></html>\n";
于 2013-07-29T17:59:36.007 に答える
0

あいまいな質問、あいまいな答え: CGI プログラムを作成して、LWPなどの HTTP ユーザー エージェントを含めます。

于 2013-07-29T16:51:21.790 に答える