2010-03-01 5 views
1

J'ai un ami qui a écrit une servlet qui ne sert que XML (juste XML, pas de SOAP ou etc., Content-Type: text/xml).android communiquer avec la page Web, obtenir 502 erreur

Maintenant j'essaye d'y accéder en utilisant Android. Je peux accéder à la page très bien si je surfe sur la page avec Firefox, mais si j'y accède en utilisant mon application Android, j'obtiens un HTTP 502 error.

Le code J'utilise est:

AlertDialog alertDialog; 
HttpClient httpClient = new DefaultHttpClient(); 
HttpContext localContext = new BasicHttpContext(); 
HttpGet httpGet = new HttpGet("x"); 
try { 
    HttpResponse response = httpClient.execute(httpGet, localContext); 
    alertDialog = new AlertDialog.Builder(view.getContext()).create(); 
    alertDialog.setButton("OK", new DialogInterface.OnClickListener() { 
     public void onClick(DialogInterface dialog, int which) { 
      return; 
     } 
    }); 
    alertDialog.setTitle("Response"); 
    alertDialog.setMessage(response.getStatusLine().toString()); 
    alertDialog.show(); 

    alertDialog.setMessage(EntityUtils.toString(response.getEntity())); 
    alertDialog.show(); 
} catch (IOException e) { 
    alertDialog = new AlertDialog.Builder(view.getContext()).create(); 
    alertDialog.setTitle("Sorry"); 
    alertDialog.setMessage("There was a problem connecting to the login-service."); 
    alertDialog.setButton("OK", new DialogInterface.OnClickListener() { 
     public void onClick(DialogInterface dialog, int which) { 
      return; 
     } 
    }); 
    alertDialog.show(); 
} 

et quels sont les moyens recommandés pour analyser le XML? Comme s'il y avait une étiquette spécifique là dedans comme le titre, le message, ...

Répondre

0

Pour le problème de connexion je suggérerais ceci: Il semble qu'il y ait un problème avec un proxy ou avec la méthode que vous essayez de vous connecter . Habituellement, ce serait un proxy, qui n'est pas en mesure de transmettre la demande au serveur spécifique. Mais dans le cas, que vous pouvez voir le site via FireFox, il ne devrait pas être ce problème. Vous pouvez essayer d'utiliser l'extension FireBug pour analyser la requête sur ce serveur. Quoi qu'il en soit, essayez cette méthode au lieu du HttpGet:

HttpReq request = Http.getInstance().createRequest(); 
request.setUrl("URL"); 
request.setMethod("GET"); 
request.execute(); 
message = request.getResult(); 

Une autre chose que vous pourriez essayer serait, en utilisant le HttpGet et jouer avec la méthode setFollowRedirects (vrai/faux). Peut-être que vous devez l'éteindre ou explicite.

Pour le problème XML, je suggère ce site: http://www.ibm.com/developerworks/xml/library/x-android/ qui m'a aidé à analyser certains flux RSS. Personnellement je préfère le SAX Parser sur ce site (ils introduisent quelques techniques).

Questions connexes