如何使用java在REST Web服务中复制zip和其他文件

时间:2011-04-05 06:35:58

标签: java web-services rest download fileinputstream


  有谁知道如何使用java在REST文件中复制zip文件,jar文件,二进制文件和其他文件中的数据?我使用FileInputStream编写了一个Web服务方法来复制文件,但它只能复制文件类型。

感谢

1 个答案:

答案 0 :(得分: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请求下载任何内容(更改“接受”标题后)。