com.android.volley.NoConnectionError:java.net.UnknownHostException

时间:2016-10-01 19:09:15

标签: java android android-volley

我必须与Volly进行一些网络操作。我收到com.android.volley.NoConnectionError:java.net.UnknownHostException以下代码。

String url="https://www.user.url.in"


        JsonObjectRequest medStats = new JsonObjectRequest(Request.Method.PUT, url, object,
                new Response.Listener<JSONObject>() {
                    @Override
                    public void onResponse(JSONObject response) {
                        try {
                            Boolean success = response.getBoolean("success");
                            System.out.println("On Success" + success);

                            // Toast.makeText(getApplicationContext(),""+success,Toast.LENGTH_SHORT).show();
                            //String message=response.getString("message");

                        } catch (JSONException e) {
                            e.printStackTrace();
                        }
                    }
                }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {

                Toast.makeText(context, "Error from server : " + error.toString(), Toast.LENGTH_LONG).show();

                Toast.makeText(context,Boolean.toString(isNetworkAvailable()),Toast.LENGTH_LONG).show();

                String message = null;
                if (error instanceof NetworkError) {
                    message = "Cannot connect to Internet...Please check your connection!";
                    Toast.makeText(context,message,Toast.LENGTH_LONG).show();
                } else if (error instanceof ServerError) {
                    message = "The server could not be found. Please try again after some time!!";
                    Toast.makeText(context,message,Toast.LENGTH_LONG).show();
                } else if (error instanceof AuthFailureError) {
                    message = "Authentication Error!!";
                    Toast.makeText(context,message,Toast.LENGTH_LONG).show();
                } else if (error instanceof ParseError) {
                    message = "Parsing error! Please try again after some time!!";
                    Toast.makeText(context,message,Toast.LENGTH_LONG).show();
                } else if (error instanceof NoConnectionError) {
                    message = "Communication Error!!";
                    Toast.makeText(context,message,Toast.LENGTH_LONG).show();
                } else if (error instanceof TimeoutError) {
                    message = "Connection TimeOut! Please check your internet connection.";
                    Toast.makeText(context,message,Toast.LENGTH_LONG).show();
                }

            }
        }) {
            @Override
            public Map<String, String> getHeaders() throws AuthFailureError {
                HashMap<String, String> headers = new HashMap<String, String>();
                headers.put("Content-Type", "application/json; charset=utf-8");
                headers.put("x-access-token", token);
                return headers;
            }
        };

        requestQueue.add(medStats);

我的尝试:

检查清单文件: -  1。

     

已添加

  1. 使用邮递员检查网址
  2. 互联网也在运作
  3. Logcat详细信息:

    10-01 23:20:33.913 18856-18856/user.com.test2 W/System.err: com.android.volley.NoConnectionError: java.net.UnknownHostException: Unable to resolve host "www.user.url.in": No address associated with hostname
    10-01 23:20:33.913 18856-18856/user.com.test2 W/System.err:     at com.android.volley.toolbox.BasicNetwork.performRequest(BasicNetwork.java:151)
    10-01 23:20:33.913 18856-18856/user.com.test2 W/System.err:     at com.android.volley.NetworkDispatcher.run(NetworkDispatcher.java:112)
    10-01 23:20:33.914 18856-18856/user.com.test2 W/System.err: Caused by: java.net.UnknownHostException: Unable to resolve host "www.user.url.in": No address associated with hostname
    10-01 23:20:33.914 18856-18856/user.com.test2 W/System.err:     at java.net.InetAddress.lookupHostByName(InetAddress.java:470)
    10-01 23:20:33.914 18856-18856/user.com.test2 W/System.err:     at java.net.InetAddress.getAllByNameImpl(InetAddress.java:252)
    10-01 23:20:33.915 18856-18856/user.com.test2 W/System.err:     at java.net.InetAddress.getAllByName(InetAddress.java:215)
    10-01 23:20:33.915 18856-18856/user.com.test2 W/System.err:     at com.android.okhttp.internal.Network$1.resolveInetAddresses(Network.java:29)
    10-01 23:20:33.915 18856-18856/user.com.test2 W/System.err:     at com.android.okhttp.internal.http.RouteSelector.resetNextInetSocketAddress(RouteSelector.java:188)
    10-01 23:20:33.915 18856-18856/user.com.test2 W/System.err:     at com.android.okhttp.internal.http.RouteSelector.nextProxy(RouteSelector.java:157)
    10-01 23:20:33.915 18856-18856/user.com.test2 W/System.err:     at com.android.okhttp.internal.http.RouteSelector.next(RouteSelector.java:100)
    10-01 23:20:33.915 18856-18856/user.com.test2 W/System.err:     at com.android.okhttp.internal.http.HttpEngine.createNextConnection(HttpEngine.java:357)
    10-01 23:20:33.915 18856-18856/user.com.test2 W/System.err:     at com.android.okhttp.internal.http.HttpEngine.nextConnection(HttpEngine.java:340)
    10-01 23:20:33.915 18856-18856/user.com.test2 W/System.err:     at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:330)
    10-01 23:20:33.915 18856-18856/user.com.test2 W/System.err:     at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:248)
    10-01 23:20:33.915 18856-18856/user.com.test2 W/System.err:     at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:433)
    10-01 23:20:33.916 18856-18856/user.com.test2 W/System.err:     at com.android.okhttp.internal.huc.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:114)
    10-01 23:20:33.916 18856-18856/user.com.test2 W/System.err:     at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getOutputStream(HttpURLConnectionImpl.java:245)
    10-01 23:20:33.916 18856-18856/user.com.test2 W/System.err:     at com.android.volley.toolbox.HurlStack.addBodyIfExists(HurlStack.java:264)
    10-01 23:20:33.916 18856-18856/user.com.test2 W/System.err:     at com.android.volley.toolbox.HurlStack.setConnectionParametersForRequest(HurlStack.java:234)
    10-01 23:20:33.916 18856-18856/user.com.test2 W/System.err:     at com.android.volley.toolbox.HurlStack.performRequest(HurlStack.java:107)
    10-01 23:20:33.919 18856-18856/user.com.test2 W/System.err:     at com.android.volley.toolbox.BasicNetwork.performRequest(BasicNetwork.java:96)
    10-01 23:20:33.919 18856-18856/user.com.test2 W/System.err:     ... 1 more
    10-01 23:20:33.919 18856-18856/user.com.test2 W/System.err: Caused by: android.system.GaiException: android_getaddrinfo failed: EAI_NODATA (No address associated with hostname)
    10-01 23:20:33.919 18856-18856/user.com.test2 W/System.err:     at libcore.io.Posix.android_getaddrinfo(Native Method)
    10-01 23:20:33.920 18856-18856/user.com.test2 W/System.err:     at libcore.io.ForwardingOs.android_getaddrinfo(ForwardingOs.java:55)
    10-01 23:20:33.920 18856-18856/user.com.test2 W/System.err:     at java.net.InetAddress.lookupHostByName(InetAddress.java:451)
    10-01 23:20:33.920 18856-18856/user.com.test2 W/System.err:     ... 18 more
    

3 个答案:

答案 0 :(得分:0)

我得到了解决方案。在使用凌空时处理子域时。不要使用www。 所以正确的格式是String url =“http://user.url.in

答案 1 :(得分:0)

如果Android Volley发布请求因网络丢失而失败,Android Volley会在网络连接自动恢复后重试帖子吗? 不,它不会。根据您的申请,我可能根本不需要。

是否会触发所有请求尝试,等待连接重新建立或只是触发错误并停止? 它只是抛出一个错误。是的,你应该自己写这种逻辑。

答案 2 :(得分:0)

截击的

setRetryPolicy()也增加了timeOut和Retry计数。希望对您有所帮助。