Как получить индикатор выполнения загрузки файла с помощью Apache HttpClient 4?

У меня есть следующий код для загрузки файла с помощью HTTP-клиента Apache (org.apache.http.client):

  public static void main(String[] args) throws Exception
  {
    String fileName = "test.avi";
    File file = new File(fileName);

    String serverResponse = null;
    HttpParams params = new BasicHttpParams();
    params.setParameter(HttpProtocolParams.USE_EXPECT_CONTINUE, true);
    HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);
    HttpClient client = new DefaultHttpClient(params);
    HttpPut put = new HttpPut("http://localhost:8080/" + fileName);

    FileEntity fileEntity = new FileEntity(file, "binary/octet-stream");
    put.setEntity(fileEntity);   

    HttpResponse response = client.execute(put);
    HttpEntity entity = response.getEntity();
    if (entity != null)
    {
      serverResponse = EntityUtils.toString(entity);
      System.out.println(serverResponse);
    }
  }

Он работает неплохо, но теперь я хочу иметь индикатор выполнения, который показывает ход загрузки файла. Как это сделать? Я нашел фрагмент кода в Загрузка файла с помощью Java (с индикатором выполнения) , но он разработан для Apache HTTP Client 3 (org.apache.commons.httpclient), а класс RequestEntity не существует в Apache HTTP Client. 4.; (

Может быть, у кого-то из вас есть подход?

Приветствую

Бенни

22
задан Community 23 May 2017 в 11:45
поделиться