2010-08-03 11 views
9

J'ai besoin d'explorer pour mon projet d'utilisation des services Web sur Android. Je sais qu'il n'y a pas de bibliothèque officielle pour le service Web XML - RPC.Android - Lire un fichier XML avec HTTP GET

Mais il y a du REST XML et j'ai besoin de le tester.

Je voudrais lire XML sur ma page Web (où je dois passer le nom d'utilisateur et mot de passe) d'Android avec HTTP GET.

OU

On suppose, je suis This link, alors où je ne passe le nom d'utilisateur et mot de passe?

Quelqu'un peut-il m'aider à ce sujet.

+0

Comment le nom d'utilisateur et mot de passe requis? Si c'est HTTP Basic Auth, la bibliothèque HttpClient le supporte et vous pouvez l'ajouter au code de Gianni. – Nick

Répondre

12
HttpGet uri = new HttpGet("http://example.com");  

DefaultHttpClient client = new DefaultHttpClient(); 
HttpResponse resp = client.execute(uri); 

StatusLine status = resp.getStatusLine(); 
if (status.getStatusCode() != 200) { 
    Log.d(tag, "HTTP error, invalid server status code: " + resp.getStatusLine()); 
} 

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); 
DocumentBuilder builder = factory.newDocumentBuilder(); 
Document doc = builder.parse(resp.getEntity().getContent()); 
+0

N'oubliez pas de fermer votre requête HTTP! resp.getEntity(). consumeContent() - seulement besoin de le faire dans le cas où l'analyse XML ne lit pas complètement le fichier, donc dans un bloc finally sous une forme quelconque. – Nick

+0

@Nick Yeah! En fait, ce n'est qu'un extrait d'un code beaucoup plus grand que j'ai en cours d'exécution. Je viens de prendre les parties pertinentes pour commencer. – Gianni

+0

Beans cool - c'est juste une erreur courante dans la requête HTTP, alors j'ai pensé que je le mentionnerais pour le bénéfice de tout le monde. Personnellement, j'aime utiliser les méthodes execute() qui prennent un ResponseHandler, car elles garantissent que tout est libéré après l'appel du gestionnaire. – Nick

2

Ce lien m'a aidé à comprendre comment utiliser HTTP GET XML et Parse à l'aide de l'interpréteur SAX.

http://www.anddev.org/parsing_xml_from_the_net_-_using_the_saxparser-t353.html

Hope this helps,

ITOM

+0

@iTom ... J'ai déjà lu cet article .... mais alors comment puis-je passer "Username" et "Password" valeur ..... btw thanx –

+1

Avec une demande GET les valeurs de formulaire sont généralement ajoutées à l'URI demande au lieu de posté à savoir http://www.example.com/webservice.php?username=iTom&password=MyPassword espoir qui aide, ITOM – iTom

+0

Oh aussi si votre après une fonction qui construit l'URI pour une requête GET puis cet article peut également aider .. http://www.anddev.org/doing_http_post_with_android-t492.html – iTom

1

Quelques lignes de code pour HTTP Basic Auth, si vous voulez dire cela. Où "Base64Converter" est une classe utilitaire convertit une chaîne en sa forme compilée Base64. le faire avant le openConnection() appel à parsingxml.java, ligne 36.

+0

je pense que cela m'aide ... laissez-moi essayer ... donnez-vous la réponse si courir .. merci pour le soutien –

+0

Base64Converter n'est pas pris en charge dans Android..showing Ligne rouge sous (erreur) le Base64Converter –

+0

@Paresh oui Base64Converter est une classe d'utilitaires de domaine public que j'ai trouvée ailleurs. Une recherche Google pourrait vous trouver le bon endroit. Android signifiait avoir fourni une classe d'encodeur/décodeur Base64 mais n'était pas disponible pour les développeurs d'applications. – Ryan