如何使用Java拦截和篡改HTTP响应?

时间:2015-12-22 14:46:30

标签: java xml soap jax-ws byte-order-mark

我有一个Java应用程序执行不同的http请求,我不直接控制(通过Jaxws生成的客户端的SOAP请求)。我在XML prolog前面有一些BOM标记有些困难,我现在想避免使用它们。在让javax.xml解析正确的SOAP信封之前,我想拦截HTTP响应并篡改它。

现在问我的问题:如何在不需要Fiddler或任何其他代理的情况下优雅地拦截任何带有Java的HTTP响应? 我可以实现类似代理类的东西并在HTTP连接工厂中注册它吗? 是否可以实现“真正的”http代理为我做清洁工作?

我正在使用org.codehaus.mojo:jaxws-maven-plugin:2.4.1和Maven一起从WSDL创建存根。

重要:我只控制客户端,而不是服务器。因此,我只能让Java接受/解析响应信封前面的BOM标志将其过滤掉,以便javax.xml可以正常解析它。

1 个答案:

答案 0 :(得分:0)

您可以使用cxf拦截器。它们应该允许您在输入链的任何阶段处理消息。它们描述得很好here