как скопировать zip и другие файлы в веб-сервис REST, используя Java - PullRequest
0 голосов
/ 05 апреля 2011


Кто-нибудь знает, как копировать данные в ZIP-файл, JAR-файл, двоичный файл и другие в веб-сервис REST, используя Java? Я пишу метод веб-службы для копирования файла с использованием FileInputStream, но он может копировать только тип файла.

спасибо

1 Ответ

1 голос
/ 20 августа 2011

Я бы порекомендовал использовать для этого 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();
    }
}

Я не скомпилировал это, но вы, вероятно, можете запустить его без особых проблем(не стесняйтесь редактировать мой комментарий и исправлять код, если вы пытаетесь скомпилировать это и есть ошибки).Также обратите внимание, что этот код должен работать для загрузки чего-либо из веб-запроса (после изменения заголовка «Принять»).

...