拦截客户端应用程序的完整 HTTP 流量

问题描述 投票:0回答:1

我想获取客户端本身的 HTTP 请求发送的完整流量。 从“POST”开始到最后一个字节。

有办法吗?某种拦截器? 不仅登录文件,而且将其获取到应用程序中(发送后将每个字节也以字符串或字节数组形式发送 - 用它做一些事情 - 例如记录、归档……)。

HttpURLConnection http = (HttpURLConnection) new URL ("http://localhost/test").openConnection ();
http.setRequestMethod ("POST");
http.setDoOutput (true);
http.connect ();
OutputStream os = http.getOutputStream ();
os.write ("test".getBytes ());
InputStream is = http.getInputStream ();
byte [] resp = is.readAllBytes ();
java spring-boot
1个回答
0
投票

使用库来处理 HTTP 客户端请求。这使您从低级别的连接开放等中抽象出来,但也允许您根据需要启用线路级日志记录。

有许多流行的基于 Java 的 HTTP 客户端库。毫无疑问,其他人会在其他答案中列出一些。

如果您使用Apache HTTP Client,您当然可以启用线路级别日志记录(请参阅https://hc.apache.org/httpcomponents-client-4.5.x/logging.html),但您也可以将如果您愿意,还可以使用其他类型的拦截器。

拦截数据流时要小心;您需要将数据“tee”以用于您自己的诊断目的,同时还将数据传递给预期的下游消费者。

© www.soinside.com 2019 - 2024. All rights reserved.