我在SEND
阶段的输出链中编写了一个拦截器,我希望将 REST 服务的响应的有效负载转换为String变量。我怎样才能做到这一点?
这是我的拦截器
public class MyLoginOutInterceptor extends LoggingOutInterceptor {
public MyLoginOutInterceptor() {
super(Phase.SEND);
}
@Override
public void handleMessage(Message message) throws Fault {
OutputStream os = message.getContent(OutputStream.class);
}
}
当我给OutputStream os = message.getContent(OutputStream.class);
添加一个断点时,我看到有效负载在os中,但我不知道如何将它变成一个String。
有什么想法吗?
答案 0 :(得分:2)
在responsePayload中你应该拥有你想要的东西。
public void handleMessage(Message message) throws Fault {
OutputStream os = message.getContent(OutputStream.class);
StringBuilder responsePayload = new StringBuilder();
CachedOutputStream cos = (CachedOutputStream) os;
try {
cos.writeCacheTo(responsePayload);
} catch (IOException e) {
e.printStackTrace();
}
}