Après avoir effectué une deuxième demande réseau à l'aide de Volley
, j'obtiens toujours cette erreur. Peu importe l'URL que je mets. Volley
prétend toujours qu'il est mal formé.
08-04 20:16:26.885 14453-14470/com.thredup.Android E/Volley﹕ [994] NetworkDispatcher.run: Unhandled exception Java.lang.RuntimeException: Bad URL
Java.lang.RuntimeException: Bad URL
at com.Android.volley.toolbox.BasicNetwork.performRequest(BasicNetwork.Java:127)
at com.Android.volley.NetworkDispatcher.run(NetworkDispatcher.Java:110)
Caused by: Java.net.MalformedURLException: Protocol not found:
at Java.net.URL.<init>(URL.Java:176)
at Java.net.URL.<init>(URL.Java:125)
at com.Android.volley.toolbox.HurlStack.performRequest(HurlStack.Java:101)
at com.Android.volley.toolbox.BasicNetwork.performRequest(BasicNetwork.Java:93)
En recherchant plus loin, j'ai mis quelques journaux dans HurlStack. Dans
public HttpResponse performRequest(Request<?> request, Map<String, String> additionalHeaders),
la demande qui échoue est REQUEST [ ] 0x0 LOW 26.
"
Ainsi, la ligne 101 de HurlStack: URL parsedUrl = new URL(url);
échoue avec une URL vide (request.getUrl()
est vide).
J'utilise OkHttpStack
(étendant HurlStack). Des idées sur ce qui pourrait être à l'origine de cela?
en fait le problème vient de votre url et non de la volée. Votre URL n'est pas un URI. Il n'y a aucun composant de protocole dedans. Il faut http://
ou tout autre protocole que vous envisagez. Si vous avez le http dans votre URL, assurez-vous qu'il est correctement formé ou non.
Par exemple, la formation de votre URL doit être comme ceci
public String URL = "http://www.w3schools.com/webservices/tempconvert.asmx";
N'oubliez pas de lire Spécification d'URL et assurez-vous que l'URL que vous fournissez est valide.
Assurez-vous que vous avez transmis l'URL comme deuxième paramètre dans JsonObjectRequest ou StringRequest. J'ai fait la même erreur qui a produit la même erreur que celle que vous avez rencontrée.
JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Method.POST, URL, null, ResponseListener, ErrorListener);
Utilisez http: // OR https: //
préfixe de votre exemple d'URL: example.com/information.json écrivez-le http://example.com/information.json