我已经阅读了数百篇 SO 帖子并研究了几个可用的 Java HTTP 代理源......但我找不到我的问题的解决方案。
我编写了一个代理 Http-Requests 的 WebApp。WebApp 正在运行,但链接和引用者被破坏,因为代理页面的“根”指向我的服务器的根,而不是我的 proxyservlet 的路径。
为了更清楚:
我的 ProxyServlet 收到一个请求“ http://myserver.com/proxy/ProxyServlet?foo=bar ”
ProxyServlet 现在从 ServerX 获取页面内容(例如“ http://original.com/test.html ”)
只需从一个流读取和写入另一个流并复制标题,即可将页面内容传递给浏览器。
浏览器显示页面,即浏览器显示的 URL 是原始请求(“ http://myserver.com/proxy/ProxyServlet?foo=bar ”),但所有相关链接现在都指向“ http://myserver ” .com/XXX.html ” 而不是“ http://myserver.com/proxy/ProxyServlet/XXX.html ”
是否有一个响应标头,我可以在其中更改“路径”,以便相关链接正确指向我的 ProxyServlet?
(重写页面内容和替换链接太难了,因为页面包含相对寻址的元素,如 javascript 代码和其他活动内容......)
(将我的 Servlet 的映射更改为“/*”也是不可能的...必须通过此路径访问...)