【问题标题】:How to "Forward" a Request and get the Cookies/Form Data Submitted?如何“转发”请求并​​获取提交的 Cookies/表单数据?
【发布时间】:2012-05-07 13:37:27
【问题描述】:

我想按原样转发请求,但来自我的服务器(代理)除外。 例如,如果用户向http://google.com/ 提交请求,我的服务器会将该请求发送到 google.com,并将响应返回给用户。如果支持 SSL/HTTPS,那就太好了,但我可以没有它。代理还需要保存提交的 cookie 和表单数据。

【问题讨论】:

  • 您需要的是代理....不确定纯 PHP 代理是否理想
  • 您有更具体的问题吗?这不完全符合 SO Q&A 格式,考虑到该主题的广泛性以及我们获得的信息又是如此之少
  • PHP simple proxy的可能重复
  • 例如一个用户向我的服务器提交如下请求: POST /path/script.cgi HTTP/1.0 From: frog@jmarshall.com User-Agent: HTTPTool/1.0 Content-Type: application /x-www-form-urlencoded Content-Length: 32 home=Cosby&favorite+flavor=flies 我的服务器会将该请求发送到 google.com,并将响应输出给用户。 Perl 可能会更好,如果 Perl 中有类似 php://input 的东西。
  • 我想我会尝试使用 php://input 和 fsocketopen。感谢您的帮助。

标签: php perl curl proxy


【解决方案1】:

我在Plack::App::Proxy 上取得了一些成功

您可以尝试这样的方法来帮助您入门:

#!/usr/bin/env perl

use strict;
use warnings;
use Plack::App::Proxy;
use Plack::Builder;

my $app = builder {

    mount '/' => builder {
        Plack::App::Proxy->new( remote => 'http://google.com:80/' )->to_app;
    };  

};

$app;

将其保存为 app.psgi 并运行它:

plackup app.psgi

您的代理现在将在端口 5000 上运行

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-13
    • 2014-09-25
    • 2017-10-21
    相关资源
    最近更新 更多