Eri*_*ran 19 android android-networking android-volley okhttp
在使用第二个网络请求后Volley,我总是收到此错误.我输入的网址是什么似乎并不重要. 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)
Run Code Online (Sandbox Code Playgroud)
进一步调查,我在HurlStack中放了几个日志.在
public HttpResponse performRequest(Request<?> request, Map<String, String> additionalHeaders),
Run Code Online (Sandbox Code Playgroud)
失败的请求是REQUEST [ ] 0x0 LOW 26."
因此,HurlStack的第101行: URL parsedUrl = new URL(url);
以空URL(request.getUrl()为空)失败.
我正在使用OkHttpStack(扩展HurlStack).关于可能导致这种情况的任何想法?
Kin*_*ses 13
实际问题是你的网址没有凌空.您的Url不是URI.它中没有协议组件.它需要http://或你想要的任何其他协议.如果你的网址中有http,请确保它的正确形成位置.
例如,您的网址形成应该是这样的
public String URL = "http://www.w3schools.com/webservices/tempconvert.asmx";
Run Code Online (Sandbox Code Playgroud)
不要忘记阅读URL规范并确保您提供的URL有效.
确保您已将 URL 作为 JsonObjectRequest 或 StringRequest 中的第二个参数传递。我犯了同样的错误,产生了与您所面临的相同的错误。
JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Method.POST, URL, null, ResponseListener, ErrorListener);
Run Code Online (Sandbox Code Playgroud)