À l'aide de HttpGet retour de code HTML complète
Je suis en train d'appeler un web service dans lequel il y a un lien que j'ai pour l'accès à l'aide GET
méthode. Tout en utilisant l'URL directe sur navigateur (il doit se connecter en premier), je reçois les données au format JSON. L'URL je suis en invoquant est comme ça
http://www.example.com/trip/details/860720?format=json
L'url fonctionne très bien, mais quand j'invoque cette aide HttpGet
, je reçois le code HTML de la page web, au lieu de la Chaîne JSON. Le code que j'utilise est comme suit:
private String runURL(String src,int id) { //src="http://www.example.com/trip/details/"
HttpClient httpclient = new DefaultHttpClient();
HttpGet httpget = new HttpGet(src);
String responseBody="";
BasicHttpParams params=new BasicHttpParams();
params.setParameter("domain", token); //The access token I am getting after the Login
params.setParameter("format", "json");
params.setParameter("id", id);
try {
httpget.setParams(params);
HttpResponse response = httpclient.execute(httpget);
responseBody = EntityUtils.toString(response.getEntity());
Log.d("runURL", "response " + responseBody); //prints the complete HTML code of the web-page
} catch (Exception e) {
e.printStackTrace();
}
return responseBody;
}
Pouvez-vous me dire ce que je fais de mal??
- quel est le contenu si vous essayez d'atteindre l'url dans le navigateur ou curl
- c'est une chaîne json, si j'essaie de l'appeler via le navigateur, qui est ce qu'il devrait être sur Android aussi.
Vous devez vous connecter pour publier un commentaire.
Essayez de spécifier Accepter & Type de Contenu à vous d'en-tête http:
Notez que vous pouvez utiliser des outils comme wireshark de capturer et d'analyser les revenus et les résultats http paquet, et de comprendre le style précis de l'en-tête http qui renvoie votre réponse json à partir d'un navigateur standard.
Mise à jour:
Vous avez mentionné besoin de se connecter en premier lors de l'utilisation du navigateur, le contenu html renvoyé est probablement la page de connexion (si l'option utiliser l'authentification de base type, il renvoie à une courte réponse html avec le code d'état 401, donc un navigateur moderne sait comment la gérer, plus précisément, pop-up invite de connexion pour l'utilisateur), de sorte que le premier essai serait de vérifier l'état de votre code de réponse http:
Dépend de quel genre de type d'authentification que vous utilisez, vous avez probablement besoin de spécifier les informations de connexion à votre requête http en tant que bien, quelque chose comme ça (si c'est une authentification de base):