Android Volley MalformedURLException Неверный 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). Любые идеи о том, что может быть причиной этого?


person Eric Cochran    schedule 05.08.2014    source источник
comment
Я тоже получаю эту ошибку, можете ли вы объяснить, как вы ее решили? Благодарю.   -  person Gabriela Radu    schedule 17.02.2015
comment
Я тоже получаю эту ошибку, пожалуйста, поделитесь решением, если вы решили его, большое спасибо!   -  person Anis LOUNIS    schedule 08.08.2015
comment
@Nightly Вы нашли какое-нибудь решение для этого?   -  person RevanthKrishnaKumar V.    schedule 26.08.2015
comment
@RevanthRev: я думаю, вам следует опубликовать свой код для получения дополнительной информации.   -  person BNK    schedule 27.08.2015
comment
stackoverflow.com/q/32245444/4522954 @BNK   -  person RevanthKrishnaKumar V.    schedule 27.08.2015
comment
@RevanthRev: ваша проблема решена?   -  person BNK    schedule 27.08.2015
comment
да БНК спасибо, что пришли   -  person RevanthKrishnaKumar V.    schedule 27.08.2015
comment
Можете ли вы добавить код, где вы делаете свой запрос?   -  person C.d.    schedule 27.08.2015
comment
Поджарить строку URL. он пустой??. если да, то на самом деле это не проблема Volley, если URL-адрес пуст   -  person Tasos    schedule 02.09.2015
comment
Добавьте фрагмент кода. Как вы это реализовали? Код внутри onResponse и errorlistener не требуется.   -  person Vivek Sinha    schedule 02.09.2015
comment
Это исключение возникает в вашем втором запросе с использованием залпа, а не в первом. Если это так, то это была ошибка залпа. Не уверен, исправлено ли это сейчас или нет.   -  person priyankvex    schedule 03.09.2015
comment
Привет @Eric, ты примешь мой ответ. Чтобы он не содержал вопросов без ответов и был полезен для других   -  person King of Masses    schedule 26.07.2017


Ответы (4)


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

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

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

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

person King of Masses    schedule 03.09.2015

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

JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Method.POST, URL, null, ResponseListener, ErrorListener);
person RevanthKrishnaKumar V.    schedule 02.09.2015
comment
Здесь я могу использовать JsonArrayRequest. Я также могу столкнуться с той же проблемой. - person KOUSIK daniel; 15.06.2016

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

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

person Dildarkhan Pathan    schedule 30.11.2015

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

person John smith    schedule 03.09.2015