我是一个REST包装器服务,当我调用后端服务时,在某些情况下,他们生成了一个我可以使用特定URL检索的文件:https://localhost:1234/ ...我如何最有效地使用javax .ws.core.Response将该链接的内容发送给调用者?我可能自己将URL读取到本地文件并以这种方式发送,但我想知道REST是否会为我做这件事。谢谢,
答案 0 :(得分:0)
当您的后端网址对您的客户端公开时,您可以发送重定向301。
当它不是
时@Get
@Produces({...})
public Response readFile() {
return Response.ok().entity(new StreamingOutput() {
@Override public void write(OutputStream output)
throws IOException, WebApplicationException {
// open the back-end url and copy the bytes to given output
final InputStream input = new URL(back-end-url).openStream();
final byte[] buf = new byte[1024];
for (int read = -1; (read = input.read(buf)) != -1; ) {
output.write(buf, 0, read);
}
output.flush();
}
}).build();
}