2010-09-09 4 views
0

Lorsque j'appelle un service Web, les données ne s'affichent pas correctement. Certains blocs sont là string, entier, chars sont là des données mixtes sous forme json.problème d'appel de service Web?

1) Quand j'utilise cette approch pour convertir les données ...

 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(); 

     } 

sortie ...

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

2) et quand j'utilise cette approch pour convertir les données .. .

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); 

     } 

SORTIE ....

 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 

NOTE .... le « reçu » la variable perd nos données quand il sortent de la boucle ...

+0

pls aider ce que je devrais faire dans ce cas ... – veera

Répondre

1

La question semble être: pourquoi la variable locale « reçu » ont seulement un fragment de la texte qui est imprimé sur la console. C'est parce qu'une nouvelle chaîne est affectée à la variable pour chaque lot d'octets lues à partir de DataInputStream.

Ce code ne semble pas faire le travail de manière concise - pourquoi utiliser un DataInputStream par exemple - alors peut-être que poser des questions sur la plus grande tâche sera plus utile.

Questions connexes