2010-09-09 2 views
0

Когда я вызываю данные веб-службы, это не происходит должным образом. В некоторых блоках есть строка, целое число, символы - это смешанные данные в форме json.проблема с веб-сервисом?

1) Когда я использую этот Approch для преобразования данных ...

 StringBuffer sb = new StringBuffer();    
     byte[] buf = new byte[256]; 
     int n = 0;     

     while ((n = StrReader.read(buf)) > 0) 
      { 
       sb.append(new String(buf,0,n)); 
      } 
      String returnContent = sb.toString(); 
      System.out.println(new String(returnContent)); 
      StrReader.close(); 

     } 

выход ...

 text/htmlj 
~"115.252.128.200", "roles": { "1": "anonymous user" }, "session": "", "cache": 0 } } } 
No stack trace 

2) и, когда я использую этот Approch для преобразования данных .. .

dis = new DataInputStream(hc.openInputStream()); 

     byte[] data1 = new byte[20]; 
     int len = 0; 
     StringBuffer strBuffer = new StringBuffer(); 
     while (-1 != (len = dis.read(data1))) 
     { 
      received = new String(data1, 0, len);         
      System.out.println(received); 

     } 

ВЫВОД ....

 text/html 
j 
~Salse, "#data": { "se 
ssid": "fef51cf48aca 
46e3b3aedafc02860f25 
", "user": { "uid": 
0, "hostname": "115. 
252.128.200", "roles 
": { "1": "anonymous 
user" }, "session": 
"", "cache": 0 } } 
} 
Outer---->>>} 
No stack trace 

ПРИМЕЧАНИЕ .... «получил» переменная теряет наши данные, когда она выйдет из цикла ...

+0

Помощник pls, что я должен делать в этом случае ... – veera

ответ

1

вопрос, как представляется: почему локальная переменная «получил» есть лишь фрагмент из текст, который печатается на консоли. Это потому, что переменной присваивается новая строка для каждой партии байтов, которые считываются из DataInputStream.

Этот код, по-видимому, не выполняет краткую работу - зачем использовать DataInputStream, например, поэтому, возможно, вопрос о более крупной задаче будет более полезен.

Смежные вопросы