URL url = new URL(binpath);
URLConnection connection = url.openConnection();
InputStream is = connection.getInputStream();
String mt = connection.getContentType();
ResponseBuilder response = Response.ok((Object) is, mt);
response.header("Content-Disposition","attachment; filename=" + binpath.substring(binpath.lastIndexOf('/') + 1, binpath.length()));
return response.build();
我有一个带有上述代码(Response
)的REST服务。调用时保存文件值为“file1 addsagfdfgfd”
当我从另一个类调用此函数并使用Response
获取如下内容时,它不会向我提供响应的内容。它返回
com.sun.jersey.core.spi.factory.ResponseImpl@66e5a761
String rp = file1Response.toEntity().toString();
如何从其余的Response(这是一个文件)中获取字符串值,或者如何更改代码以返回字符串?
答案 0 :(得分:0)
我会将文件解析为String
或创建一个包含有关该文件及其内容的所有信息的类。您可能对MessageBodyWriter
存在问题。
如果将文件转换为String,则可以轻松将其放入响应主体中。同样适用于自编类。您可以通过注释您不希望与@XmlTransient
一起发送的字段来控制将与正文一起发送的字段。
我猜MessageBodyWriter
无法处理InputStream
。你有没有检查过HTTP状态代码?它可能是500 Internal Server Error
,在您的日志中,您应该会看到类似于"类型为InputStream"的MessageBodyWriter。
此外,您应该在问题中编写整个方法代码,提供您在该方法中使用的所有变量。