Android Volley MalformedURLException Bad URL

После выполнения второго сетевого запроса с помощью VolleyЯ всегда получаю эту ошибку. Кажется, не имеет значения, какой URL я вставил. Volley всегда утверждает, что это неправильно.

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)

Исследуя дальше, я поставил пару логов в HurlStack. В

public HttpResponse performRequest(Request<?> request, Map<String, String> additionalHeaders),

неудавшийся запрос REQUEST [ ] 0x0 LOW 26."

Таким образом, строка 101 HurlStack: URL parsedUrl = new URL(url);

не с пустым URL (request.getUrl() пустой).

я использую OkHttpStack (расширение HurlStack). Любые идеи о том, что может быть причиной этого?

4 ответа

На самом деле проблема с вашим URL, а не с залпом. Ваш URL не является URI. В нем нет компонента протокола. Нужно http:// или любой другой протокол, который вы собираетесь. Если у вас есть http в вашем URL, убедитесь, что он правильно сформирован или нет.

Например, ваш URL должен быть таким

public String URL = "http://www.w3schools.com/webservices/tempconvert.asmx";

Не забудьте прочитать спецификацию URL и убедиться, что предоставленный вами URL действителен.

Убедитесь, что вы передали URL-адрес в качестве второго параметра в JsonObjectRequest или StringRequest. Я совершил ту же ошибку, которая вызвала ту же ошибку, что и вы.

JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Method.POST, URL, null, ResponseListener, ErrorListener);

Используйте http:// ИЛИ https://

префикс к вашему примеру URL: example.com/information.json напишите его как http://example.com/information.json

Это исключение происходит, когда вы бьете Url это не префикс сhttp// или же https//.посмотри там естьhttp// с вашим URL. Вы можете получить больше информации здесь и увидеть эти ссылки

Другие вопросы по тегам