0


Javaを使用してREST Webサービスでzipファイル、jarファイル、バイナリファイルなどのデータをコピーする方法を知っている人はいますか? FileInputStream を使用してファイルをコピーする Web サービス メソッドを作成しましたが、ファイル タイプしかコピーできません。

ありがとう

4

1 に答える 1

1

これにはapache httpclientを使用することをお勧めします。コードは次のようになります (バージョン 4.x 以降を使用していることを確認してください)。

HttpClient client = new DefaultHttpClient();
HttpRequestBase httpMethod = httpMethod = new HttpGet(myUrlString);
httpMethod.setHeader("Accept", "application/zip");
HttpResponse response = httpClient.execute(httpMethod);
int statusCode = response.getStatusLine().getStatusCode();
if(statusCode != 200) {
    throw new Exception("Bad return status code of: "+statusCode);
}
HttpEntity entity = response.getEntity();
if( entity != null) {
    FileOutputStream fos = new FileOutputStream("myFile.zip");
    int nextByte=0;
    InputStream cis = entity.getContent();
    try {
        while( (nextByte = cis.read()) >= 0) fos.write(nextByte);
    } finally {
        fos.close();
        cis.close();
    }
}

私はこれをコンパイルしていませんが、あまり問題なく実行できるでしょう (これをコンパイルしようとしてエラーが発生した場合は、私のコメントを自由に編集してコードを修正してください)。また、このコードは一般的に、Web リクエストから何かをダウンロードするために機能するはずです (「Accept」ヘッダーを変更した後)。

于 2011-08-19T20:08:07.620 に答える