2016-07-26 6 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(); 

私は上記のコード(Response)でRESTサービスを持っています。呼び出されると "file1 addsagfdfgfd"のようなテキスト値を持つファイルが保存されますRESTレスポンスファイルからストリング

これを別のクラスから呼び出し、Responseを使用してコンテンツを次のように取得すると、応答の内容が表示されません。それは私が(ファイル)応答またはどのように私は、文字列を返すようにコードを変更することができ、残りの文字列値を取得できますか

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

を返しますか?

+0

方法全体を投稿してください。 – Matt

答えて

0

ファイルを構文解析してStringにするか、ファイルとその内容に関するすべての情報を含む独自のクラスを作成します。 MessageBodyWriterに問題がある可能性があります。

ファイルをストリングに変換すると、レスポンス本体に簡単に挿入できます。自己書かれたクラスにも同じことが言えます。 @XmlTransientで送信したくないフィールドに注釈を付けることで、本文と一緒に送信されるフィールドを制御できます。

MessageBodyWriterは、InputStreamを処理できないと思います。あなたはHTTPステータスコードをチェックしたことがありますか?おそらく500 Internal Server Errorとなり、ログに "MessageBodyWriterがタイプInputStreamに見つかりません"のようなものが表示されるはずです。

また、そのメソッド内で使用するすべての変数を指定して、質問内にメソッドコード全体を記述する必要があります。

関連する問題