0

在互联网上进行深入搜索后,我发现Smiley 的 HTTP 代理 Servlet可以很好地处理代理请求。它很小,由一个类组成。我的问题是,我可以将此代理用作活动代理,即。在获取目标主机之前,我需要运行一段代码来计算几个值。如果这个 servlet 不可能,他们还有其他解决问题的方法吗?

4

1 回答 1

0

Smiley 的 HTTP Proxy Servlet 被描述为易于扩展,因为您只需要扩展类并覆盖您想要修改的方法。

似乎这个代理可以适用于您的情况,但它更多地取决于您的用例。您想在检索目标主机之前运行一些代码,这似乎意味着#1您的目标主机将根据您的自定义代码进行修改,或者#2您只需要一个挂钩在检索目标主机之前运行您的自定义代码. 以下是我对每个问题的回答:

1) 如果您想修改目标主机(例如targetUriObj,在 ProxyServlet.java 中引用的 service() 方法的第 204 行),您确实需要下载源代码并直接根据您的需要进行修改。您可以编辑原始源代码,也可以覆盖该service()方法并更改您需要的内容。

2)如果您只是希望您的代码运行,我建议您创建 ProxyServlet 的扩展并覆盖该service()方法,如下所示:

public class ProxyServletExtension extends ProxyServlet {
    @Override
    protected void service(HttpServletRequest servletRequest, HttpServletResponse servletResponse) throws ServletException, IOException {
        // Run your custom code here

        // Call the parent service() method to finish processing
        super.service(servletRequest, servletResponse);
    }
}
于 2014-06-19T17:21:57.897 回答