2017-02-01 3 views
0

을 다운로드 할 수 있지만, 데이터가 잘 디코딩되지 않은 것 같다는 "<a href="http://www.mtv.de/news_sitemap.xml.gz" rel="nofollow noreferrer">http://www.mtv.de/news_sitemap.xml.gz</a>"를 읽으려고 제대로 GZ 파일

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

Ho, 나는 OkHttp 라이브러리가 이것을 처리한다고 믿었습니다 : –