2016-07-26 38 views
0
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(); 

我有一個帶有上述代碼的REST服務(Response)。當被調用的文件保存文件的值如「file1 addsagfdfgfd」REST對字符串的響應文件

當我從另一個類調用此函數並使用Response獲取如下內容時,它沒有給出響應的內容。它返回

[email protected] 
String rp = file1Response.toEntity().toString(); 

我怎樣才能從REST響應的字符串值(這是一個文件),或者我如何能更改代碼返回一個字符串?

+0

請問您可以發佈整個方法嗎? – Matt

回答

0

我會將該文件解析爲String或者創建一個包含有關該文件及其內容的所有信息的自己的類。您可能遇到MessageBodyWriter問題。

如果將文件轉換爲字符串,則可以輕鬆將其放入響應正文中。同樣適用於自學課程。您可以通過註釋您不想發送的字段@XmlTransient來控制與身體一起發送的字段。我想MessageBodyWriter不能處理InputStream。你有沒有檢查過HTTP狀態碼?它可能是500 Internal Server Error,在你的日誌中,你應該看到類似於「輸入流類​​型找不到MessageBodyWriter」的東西。

此外,您應該在提供您在該方法中使用的所有變量的問題中編寫整個方法代碼。