1

有一个页面驻留在运行 Apache 的本地服务器上。我想通过带有单个名称/值对的 GET 请求提交表单,例如:

id=item1234

这个 GET 请求必须由另一个服务器处理,我无法控制随后返回一个我想用 CGI 脚本转换的页面。换句话说:

  • 用户提交表单
  • 我的 apache 代理到外部资源
  • 外部资源返回一个页面
  • 我的 apache 用 CGI 转换它(也许是另一种方式?)
  • 用户获得修改后的页面

这更像是一个架构问题,所以我会很感激任何提示,即使我的鼻子进入一些指南也会有所帮助,因为我无法很好地构建我的谷歌请求以找到任何相关的东西。

谢谢。

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 程序以包含 HTTP 用户代理,例如LWP

于 2013-07-29T16:51:21.790 回答