2014-07-08 2 views
0

웹 서비스에서 응답이 너무 많습니다. 그 내용을 XmlPullParser에 전달하기 위해 문자열에 저장하고 있지만 문자열은 완전히 끝낼 수 없으므로 END TAG에 대한 예외가 발생합니다.문자열이 Android 애플리케이션에서 완전한 HttpResponse를 보유 할 수 없습니다.

응답을 직접 또는 다른 방법으로 전달할 수있는 방법이 있습니까?

는 다음과 같은 예외 받기 (I는 응답을 분할 할 수 없음) :

org.xmlpull.v1.XmlPullParserException: END_TAG expected (position:START_TAG <ItemCountUnit {http://www.w3.org/2001/XMLSchema-instance}xsi:type='ebl:UnitOfMeasure'>@1:5805 in [email protected]) 
    07-09 10:04:04.064 W/System.err(19071):  at org.kxml2.io.KXmlParser.nextText(KXmlParser.java:2077) 
    07-09 10:04:04.064 W/System.err(19071):  at com.my.project.parsers.MyParser.ParseData(MyParser.java:307) 
    07-09 10:04:04.064 W/System.err(19071):  at com.my.project.network.NetworkTask.doInBackground(NetworkTask.java:144) 
    07-09 10:04:04.064 W/System.err(19071):  at com.my.project.network.NetworkTask.doInBackground(NetworkTask.java:1) 
    07-09 10:04:04.064 W/System.err(19071):  at android.os.AsyncTask$2.call(AsyncTask.java:288) 
    07-09 10:04:04.064 W/System.err(19071):  at java.util.concurrent.FutureTask.run(FutureTask.java:237) 
    07-09 10:04:04.064 W/System.err(19071):  at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231) 
    07-09 10:04:04.064 W/System.err(19071):  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) 
    07-09 10:04:04.074 W/System.err(19071):  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) 
    07-09 10:04:04.074 W/System.err(19071):  at java.lang.Thread.run(Thread.java:841) 
+2

당신이 얻을 예외를 또 다른 문제가 있음을 나타냅니다; 이전에 던져진 다른 예외를 무시하지 않는 한. – Henry

+0

귀하의 logcat을 게시하면 도움이 될 것입니다. – injecteer

+0

@injecteer - 질문을 편집했습니다. PLZ 좀 봐 –

답변

0

사용이 코드

private static String convertStreamToString(InputStream is) { 

    BufferedReader reader = new BufferedReader(new InputStreamReader(is)); 
    StringBuilder sb = new StringBuilder(); 

    String line = null; 
    try { 
     while ((line = reader.readLine()) != null) { 
      sb.append((line + "\n")); 
     } 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } finally { 
     try { 
      is.close(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } 
    return sb.toString(); 
}