新手求教,报错LOG如下:
java.net.SocketException: No route to host
at org.apache.harmony.luni.platform.OSNetworkSystem.connect(Native Method)
at dalvik.system.BlockGuard$WrappedNetworkSystem.connect(BlockGuard.java:357)
at org.apache.harmony.luni.net.PlainSocketImpl.connect(PlainSocketImpl.java:207)
at org.apache.harmony.luni.net.PlainSocketImpl.connect(PlainSocketImpl.java:440)
at java.net.Socket.connect(Socket.java:1013)
at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnection.<init>(HttpConnection.java:75)
at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnection.<init>(HttpConnection.java:48)
at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnection$Address.connect(HttpConnection.java:322)
at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnectionPool.get(HttpConnectionPool.java:89)
at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.getHttpConnection(HttpURLConnectionImpl.java:285)
at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.makeConnection(HttpURLConnectionImpl.java:267)
at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:205)报错的代码段:
URL url = new URL(validateUrl);
conn = (HttpURLConnection) url.openConnection();
conn.setConnectTimeout(5000);
conn.setRequestMethod("GET"); // 请求格式
conn.connect();//在这报错
手机移动网开着呢,<uses-permission android:name="android.permission.INTERNET" /> 也加上了。
出现这种情况一般是什么问题啊?URL手机AndroidJava移动开发

解决方案 »

  1.   

    网络不通..你的Server IP对于手机来说,访问不到.
      

  2.   

    确实是啊,那个网址是http://www.actinet.cn/,电脑可以访问,但是手机却访问不了,我做的是一个手机计步器,那个网站有个接收数据的服务器,可以把用户运动情况通过url传递过去。但是老是连接的时候出错,请问还有其他方法解决吗?
      

  3.   

    前边是网站传递用户信息的链接,后边跟上 datau={'UserEmail':'用户邮箱地址','UserPsw':'密码'}
    正确传出"用户ID"  错误传出"0"
    这是用于用户登录服务器的。就这样用开头的那种方法就出现错误了。。
      

  4.   

    new Thread() {
    public void run() {
    URL url;
    try {
    url = new URL("http://www.actinet.cn/");
    HttpURLConnection conn = (HttpURLConnection) url.openConnection();
    conn.setConnectTimeout(5000);
    conn.setRequestMethod("GET"); // 请求格式
    conn.connect();//在这报错

    int r = conn.getResponseCode();
    System.out.println(r);
    } catch (Exception e) {
    e.printStackTrace();
    }
    };
    }.start();试了一下,,我的手机没有报错...你的代码呢...
      

  5.   

    我把它放在了函数里:
    private boolean validateLocalLogin(String userName, String password, // 登陆请求
    String validateUrl) { boolean loginState = false;
    HttpURLConnection conn = null;
    DataInputStream dis = null;

    try {
    URL url = new URL(validateUrl);
    conn = (HttpURLConnection) url.openConnection();
    conn.setConnectTimeout(5000);
    conn.setRequestMethod("GET"); // 请求格式
    conn.connect();
        
    dis = new DataInputStream(conn.getInputStream());
    if (conn.getResponseCode() != HttpURLConnection.HTTP_OK) {
    Log.i(tag, "HTTP ERROR");
    isNetError = true;
    return false;
    } int loginStateInt = dis.read();
    Log.i(tag, "loginState" + String.valueOf(loginStateInt));
    if (loginStateInt == 1) {
    loginState = true;
    }
    } catch (Exception e) {
    e.printStackTrace();
    Log.i(tag, e.getMessage() + " Exception");
    StringWriter sw = new StringWriter();
    e.printStackTrace(new PrintWriter(sw, true));
    String str = sw.toString();
    Log.i(tag, str);
    System.out.println(str);
    } finally {
    if (conn != null) {
    conn.disconnect();
    Log.i(tag, "disconnect");
    }
    } if (loginState) {
    if (isRememberMe()) {
    saveSharePreferences(true, true);
    } else { saveSharePreferences(true, false);
    }
    } else {
    if (!isNetError) {
    clearSharePassword();
    }
    }
    if (!view_rememberMe.isChecked()) {
    clearSharePassword();
    } Log.v("loginState", String.valueOf(loginState));
    return loginState;
    }
    然后我再另一处调用validateLocalLogin:
    public void run() {
    userName = view_userName.getText().toString();
    password = view_password.getText().toString(); String url = "http://www.actinet.cn/ActiNet/Fitness/DataUser.aspx?datau=";
    String[] value_order = { "UserEmail", "UserPsw" };
    String[] value = { userName, password };
    JSONStringer json = new JSONStringer();
    try {
    json.object();// 起到 { 的作用
    for (int i = 0; i < value.length; i++) {
    json.key(value_order[i]);
    json.value(value[i]);
    }
    json.endObject();// 起到 } 的作用
    } catch (JSONException ex) {
    throw new RuntimeException(ex);
    }
    url += json.toString();
    Log.i(tag, url); boolean loginState = validateLocalLogin(userName, password, url);//此处
    Log.i(tag, "loginState " + String.valueOf(loginState)); 
    }
      

  6.   

    我这样试过了,还是那个问题。。这个跟手机有关系吗?我的没有root过。
      

  7.   

    这就是个正常的网络请求,跟root没关系。我再试试2.X系统的手机呢,我这边也好试的
      

  8.   

    这就是个正常的网络请求,跟root没关系。我再试试2.X系统的手机呢,我这边也好试的