首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >下面-如何设置反向代理来监视我的REST的HTTP/HTTPS流量

下面-如何设置反向代理来监视我的REST的HTTP/HTTPS流量
EN

Stack Overflow用户
提问于 2017-12-21 09:05:29
回答 1查看 1.5K关注 0票数 2

基本上,我想从我的计算机中嗅探HTTP/HTTPS请求和对远程URL (基本上是REST )的响应。我知道有很多工具可以帮助我得到我想要的东西,但是我必须编写一个实用程序来使用Java (因为我们正在开发的一些应用程序将使用这个工具)。

我想要做的是设置一个代理(或者反向代理--这里我对这些术语的理解是有限的),通过它,我将所有请求路由到真正的API。该代理必须捕获请求主体(如果是POST或PUT),并将请求转发到真正的API,捕获其响应并将其发送回客户端。

我遇到了,我使用它创建并运行了一个反向代理,使用它的LoadBalancingProxyClient代理客户机。但我有几个问题要问。

假设我的API是http://myrealapplication.com/rest/operation1,我想向这个API发布一个JSON。

我创建了代理服务器,如下所示:

代码语言:javascript
复制
        LoadBalancingProxyClient loadBalancer = new LoadBalancingProxyClient();
        loadBalancer.addHost(new URI("http://myrealapplication.com"));
        loadBalancer.setConnectionsPerThread(20);

        Undertow reverseProxy = Undertow.builder()
                .addHttpListener(8990, "localhost")
                .setIoThreads(4)
                .setHandler(Handlers.requestDump(new ProxyHandler(loadBalancer, 3000, null)))
                .build();
        reverseProxy.start();

因此,一旦我启动了反向代理服务器,有两件事:

  1. 我的反向代理实际上已经成为我的真正API的别名,但是如何在这个层捕获请求和响应呢?
  2. 使用上面的设置,为了让我的请求通过这个代理,我必须将我的http://localhost:8990/rest/operation1更改为localhost:8990,这可能是不可接受的,因为我们期望的是将localhost:8990设置为一个代理,并将我的URL保持为http://myrealapplication.com/rest/operation1,这样它就可以将最终的客户机看作是来自实际API的响应。

我能用暗拖来实现这一点吗?或者有其他工具可以公开我可以在程序中使用的Java吗?

请帮帮我!

谢谢你,斯里拉姆

EN

回答 1

Stack Overflow用户

发布于 2018-01-09 15:23:09

我认为你实际上正在寻找的是一个前向代理。下面是示例代码,它将帮助您创建一个示例代码。

代码语言:javascript
复制
public class ForwardProxyWithUndertow {

  public static void main( String[] args ) {
    final HttpHandler forwardProxyHandler = new ConnectHandler(ForwardProxyWithUndertow::handleNotFound );

    Undertow.builder()
      .addHttpListener(8080, "localhost")
      .setHandler( forwardProxyHandler )
      .build()
      .start();
  }

  static void handleNotFound( HttpServerExchange e ){
    e.setStatusCode(404);
    e.endExchange();
  }
}

希望能帮上忙!)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47921483

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档