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).
Любые идеи о том, что может быть причиной этого?
Ответы
Ответ 1
на самом деле проблема заключается в том, что ваш URL не с волейболом. Ваш URL не является URI. В нем нет компонента протокола. Ему нужен http://
или любой другой протокол, который вы собираетесь использовать. Если у вас есть http в вашем URL-адресе, убедитесь, что он правильно сформирован или нет.
Например, ваше формирование URL должно быть таким:
public String URL = "http://www.w3schools.com/webservices/tempconvert.asmx";
Не забудьте прочитать Спецификацию URL и убедитесь, что указанный вами URL-адрес действителен.
Ответ 2
Убедитесь, что вы передали URL как второй параметр в JsonObjectRequest или StringRequest. Я сделал ту же ошибку, которая произвела ту же ошибку, что и вы.
JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Method.POST, URL, null, ResponseListener, ErrorListener);
Ответ 3
Использование
Http://
ИЛИ
https://
Префикс для вашего URL-адреса
пример:
example.com/information.json
напишите его как
http://example.com/information.json
Ответ 4
это исключение происходит, когда вы нажимаете Url
, который не имеет префикса http//
или https//
.so проверьте, существует ли http//
с вашим URL-адресом.
вы можете получить дополнительную информацию здесь и посмотреть эти ссылки