Je l'ai fait:
response = httpclient.execute(targetHost, httppost);
if(response.getStatusLine().getStatusCode() == 200)
{
HttpEntity entity = response.getEntity();
System.out.println("Entity:"+entity);
if (entity != null)
{
String responseBody = EntityUtils.toString(entity);
System.out.println("finalResult"+responseBody.toString());
}
Le problème est que le premier println()
affiche ceci: org.Apache.http.conn.BasicManagedEntity@481e8150
, ce qui est bien.
Mais le second System.out.println("finalResult"+responseBody.toString());
affiche uniquement cette finalResult
. Alors, quel est le problème avec ceci:
String responseBody = EntityUtils.toString(entity);
System.out.println("finalResult"+responseBody.toString());
???
IMPORTANTCe HttpEntity entity = response.getEntity();
est égal à org.Apache.http.conn.BasicManagedEntity@481e8150
. SO le problème doit être ici:
String responseBody = EntityUtils.toString (entité) ;.
S'il vous plaît aider !!!
Tout d’abord, voyez si votre serveur ne renvoie pas de réponse vide:
response.getEntity().getContentLength(); //it should not be 0
Deuxièmement, essayez ce qui suit pour convertir la réponse en chaîne:
StringBuilder sb = new StringBuilder();
try {
BufferedReader reader =
new BufferedReader(new InputStreamReader(entity.getContent()), 65728);
String line = null;
while ((line = reader.readLine()) != null) {
sb.append(line);
}
}
catch (IOException e) { e.printStackTrace(); }
catch (Exception e) { e.printStackTrace(); }
System.out.println("finalResult " + sb.toString());
Vous pouvez utiliser celui-ci:
String s = EntityUtils.toString(httpRes.getEntity());
org.Apache.http.conn.BasicManagedEntity@f8a5dec
la réponse survient lorsque nous imprimons directement l’objet HttpEntity. par exemple:
HttpEntity httpEntity=httpResponse.getEntity();
Maintenant, pour obtenir la réponse réelle du serveur, nous devons suivre les étapes suivantes:
public String convertStreamtoString(InputStream is){
String line="";
String data="";
try{
BufferedReader br=new BufferedReader(new InputStreamReader(is));
while((line=br.readLine())!=null){
data+=line;
}
}
catch(Exception e){
e.printStackTrace();
}
return data;
}
il suffit d'appeler la méthode ci-dessus et de passer httpEntity en argument. Prendre plaisir!!
Essaye ça :
HttpEntity entity = response.getEntity();
final String content;
try
{
content = EntityUtils.toString(entity);
runOnUiThread(new Runnable()
{
@Override
public void run()
{
webView.loadData(content, "text/html", "UTF-8");
}
});
}
Essaye ça:
BufferedReader rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
String body = "";
while ((body = rd.readLine()) != null)
{
Log.e("HttpResponse", body);
}
essaye ça
BufferedReader in = new BufferedReader(new InputStreamReader(response
.getEntity().getContent()));
//SB to make a string out of the inputstream
StringBuffer sb = new StringBuffer("");
String line = "";
String NL = System.getProperty("line.separator");
while ((line = in.readLine()) != null) {
sb.append(line + NL);
}
in.close();
//the json string is stored here
String result = sb.toString();