2017-02-01 5 views
0

Попытка прочитать «http://www.mtv.de/news_sitemap.xml.gz», но это, кажется, данные не очень хорошо декодируются:Не удается правильно загрузить файл GZ

OkHttpClient клиента = новый OkHttpClient();

Request request = new Request.Builder() 
      .url("http://www.mtv.de/news_sitemap.xml.gz") 
      .build(); 

    try { 
     Response response = client.newCall(request).execute(); 

     System.out.println(response.body().string()); 
    } 
    catch(IOException e) 
    { 

    } 

Это что-то не так в файле или что-то, что я должен установить/настроить?

ответ

0

Файл, который вы загружаете, является сжатым файлом. Команда:

System.out.println (response.body(). String());

Не удается извлечь файл и распечатать содержимое файла внутри. Сначала вы должны извлечь файл, а затем распечатать извлеченный файл. Попробуем привести пример:

@Test 
    public void testDownloadFile() throws IOException { 

    Request request = new Request.Builder() 
     .url("http://www.mtv.de/news_sitemap.xml.gz") 
     .build(); 

    try { 
     OkHttpClient client = new OkHttpClient(); 
     Response response = client.newCall(request).execute(); 

     ByteArrayInputStream bais = new ByteArrayInputStream(response.body().bytes()); 
     GZIPInputStream gzis = new GZIPInputStream(bais); 
     InputStreamReader reader = new InputStreamReader(gzis); 
     BufferedReader in = new BufferedReader(reader); 

     String readed; 
     while ((readed = in.readLine()) != null) { 
     System.out.println(readed); 
     } 

    } catch (IOException e) { 

    } 

    } 
+0

Хо, я полагал, что библиотека OkHttp обрабатывает это: / –