I Obtenir l'erreur "L'hôte cible ne doit pas être nul ou défini dans les paramètres".
Ceci est mon code: p> en ligne 5ème (dernière ligne ci-dessus), mon programme jette une exception. Voici l'erreur exacte: P> java.lang.IllegalArgumentException: Host name may not be null
3 Réponses :
Il suffit d'utiliser:
URLEncoder.encode(YOUR_STRING);
Encodez votre chaîne d'URL avant de poster la demande, mais n'encore que les paramètres après le?:
String url = "http://maps.google.com/maps/api/directions/json?"; String params = "origin=1600 Pennsylvania Avenue NW, Washington, DC 20500&destination=1029 Vermont Ave NW, Washington, DC 20005&sensor=false"; HttpClient httpclient = new DefaultHttpClient(); String goodParams = convertURL(params);//change weird characters for %etc HttpPost httppost = new HttpPost(url + goodParams); HttpResponse response = httpclient.execute(httppost);
Je me demande alors si l'UrlenCode codonne tout dans cette chaîne, y compris le nom d'hôte. Dans votre exemple ci-dessus, à quoi ressemble Goodurl? Au lieu de la chaîne, essayez d'utiliser l'objet URL et de définir le nom d'hôte et les ressources en cela.
Salut! Je passais toute l'URL, je l'ai modifiée, mais cela me donnait toujours une erreur ... Goodurl est http://maps.google.com/maps/api/directions/json?origin=3%20c EDAR% 20AVER% 2C% 20High Land% 20park% 2C% 20njj% 2008904 & Destination = 604% 20Bartholomew% 20 Route% 2C% 20piscataway% 2C% 20New% 20jerey% 2 008854 & Sensor = Faux code>
Ok, alors vous avez raison! Je passais toute l'URL ... Je l'ai réparé mais maintenant ça me donne cette exception! android.os.networkonmainthreadexception mais je peux rechercher ce que cela concerne ... merci!
NetworkonMainThreadEadException est lancée lorsque vous essayez de faire un appel réseau sur le fil principal, car cela affecterait la réactivité de l'interface utilisateur et entraînerait une mauvaise expérience utilisateur. Vous aurez besoin de gérer l'envoi et de recevoir dans un fil d'arrière-plan.
Je ne sais pas ce que votre méthode d'encodage URL effectue, mais si vous utilisez une méthode à partir du framework, comme codage de l'URL complète Pourcensionnera chaque caractère, y compris le Vérifiez la valeur de votre urlencoder code>, Vous ne devez jamais passer l'URL complète forte> , juste la liste des paramètres que vous devez coder pour échapper aux caractères spéciaux. P>
: // dans
% 3a% 2f% 2f code> et toutes les barres obliques supplémentaires dans
% 2f < / code>. p>
goodurl code> une chaîne après l'avoir codée. P>
Salut! Je passais toute l'URL, je l'ai modifiée, mais cela me donnait toujours une erreur ... Goodurl est http://maps.google.com/maps/api/directions/json?origin=3%20c EDAR% 20AVER% 2C% 20High Land% 20park% 2C% 20njj% 2008904 & Destination = 604% 20Bartholomew% 20 Route% 2C% 20piscataway% 2C% 20New% 20jerey% 2 008854 & Sensor = Faux code>
Ok, alors vous avez raison! Je passais toute l'URL ... Je l'ai réparé mais maintenant ça me donne cette exception! android.os.networkonmainthreadexception mais je peux rechercher ce que cela concerne ... merci!
"NetworkonMainThreadException" signifie exactement ce qu'il dit. Android ne vous permet pas d'accéder au réseau du fil principal car il bloquera l'interface utilisateur; Vous devez créer un fil d'arrière-plan pour les E / S du réseau. Vous pouvez en apprendre davantage de cet article de formation: développeur.android.com/training /basics/network-ops/index.html
Vous ne pouvez pas avoir d'espaces dans l'URL! laissez-moi voir comment encodez-vous votre URL
Votre problème est probablement dans votre fonction Converturl ... Utilisez un débogueur et vérifiez pour voir ce qui revient.
Salut! Je passais toute l'URL, je l'ai modifiée, mais cela me donne toujours l'erreur ... Goodurl =
http://maps.google.com/maps/api/directions/json?origin=3%20c EDAR % 20AVe% 2c% 20High Land% 20park% 2c% 20nj% 2008904 & Destination = 604% 20Bartholomew% 20 Route% 2C% 20piscataway% 2C% 20New% 20jerey% 2 008854 & Sensor = Faux code>
Ok, alors vous avez raison! Je passais toute l'URL ... Je l'ai réparé mais maintenant ça me donne cette exception! android.os.networkonmainthreadexception mais je peux rechercher ce que cela concerne ... merci!