- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想基本上嗅探从我的计算机到远程 URL(基本上是 REST API)的 HTTP/HTTPS 请求和响应。我知道有很多工具可以帮助我获得我想要的东西,但我必须用 Java 编写一个实用程序来执行此操作(因为我们正在开发的某些应用程序将使用它)。
我想做的是设置一个代理(或反向代理——我对这里的术语的理解有限),通过它我将所有请求路由到真实的 API。该代理必须捕获请求主体(在 POST 或 PUT 的情况下)并将请求转发到真实的 API,捕获其响应并将其发送回客户端。
我遇到了 Undertow,使用它我能够使用其 LoadBalancingProxyClient
代理客户端创建和运行反向代理。但我有几个问题。
假设我的 API 是 http://myrealapplication.com/rest/operation1
,我想向这个 API 发送一个 JSON。
我已经创建了一个代理服务器如下:
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();
所以一旦我启动了我的反向代理服务器,就会有两件事:
http://localhost:8990/rest/operation1
,这可能是 Not Acceptable ,因为我们期望做的是将 localhost:8990
设置为 Proxy,并将我的 URL 保留为 http://myrealapplication.com/rest/operation1
,以便它在响应来自实际 API 时查看最终客户端。我可以使用 undertow 来实现吗?或者是否有任何其他工具可以公开我可以在我的程序中使用的 Java API?
请帮忙!
谢谢,斯里拉姆
最佳答案
我认为您真正要找的是 Forward Proxy .这是示例代码,可帮助您创建一个。
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();
}
}
希望对您有所帮助! ;)
关于java - Undertow - 如何设置反向代理以监控流向我的 REST API 的 HTTP/HTTPS 流量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47921483/
我在通过代码更改用户控件中的流向时遇到问题,它会更改所有控件的流向。 我如何避免一些改变流向的控制,始终保持 LTR 流向。 最好的问候 最佳答案 您可以在您的资源中为每个控件声明默认样式,以便它默认
我尝试将我尚未编写的项目从 Flow 迁移到 TypeScript。我有一些 Flow 结构,但我在 TypeScript 中找不到对应的结构。 type Value = | string |
我有两个 DIV,它们分别位于 HTML 页面的两侧,例如 ( EXAMPLE ) 使用 CSS .left{ position:absolute; left:10px;
所以我在我的计算机上运行了一个 Python 程序,它每秒将相同的图像发送到 RTMP 服务器:它正在读取图像,然后发送数据。从控制台看来一切正常,但 YouTube 表示它没有收到任何数据。 这是我
我们正在尝试将数据存储实体更新作为流输入推送到 BigQuery 以提供实时数据分析。 数据存储中的每个实体将在一天内更新多次。当我们推送实体时,我需要确保只有最新的数据才应该被 bigquery 记
我们正在努力处理从 Kafka 到由 Flume 管理的 HDFS 的数据流。由于下述异常,数据未完全传输到 hdfs。然而这个错误看起来误导了我们,我们在数据目录和 hdfs 中都有足够的空间。我们
我是一名优秀的程序员,十分优秀!