java.net.ConnectException:无法连接到/10.0.0.2(端口80):连接失败:ETIMEDOUT(连接超时) [英] java.net.ConnectException: failed to connect to /10.0.0.2 (port 80): connect failed: ETIMEDOUT (Connection timed out)

查看:4272
本文介绍了java.net.ConnectException:无法连接到/10.0.0.2(端口80):连接失败:ETIMEDOUT(连接超时)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

尝试从我的笔记本电脑上运行的XAMPP服务器获取JSON数据,这只是一个测试应用程序没有重要数据,我有一个主要活动,一个 HttpManager 类我正在使用获取数据,用于解析数据的 UserdataJson ,我有一个 UserData POJO,代码如下。

Trying obtain JSON data from XAMPP server running on my laptop,this is just a test application no important data on it,i Have a main activity,an HttpManager class that am using to obtain the data,a UserdataJson am using to parse the data,I have a UserData POJO, code Below.

MainActivity:

MainActivity:

public class MainActivity extends AppCompatActivity {
    TextView output;
    ProgressBar pb;
    Button btn;
    List<UserData> userDataList;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        output=(TextView) findViewById(R.id.textView);
        output.setMovementMethod(new ScrollingMovementMethod());
        pb= (ProgressBar) findViewById(R.id.progressBar);
        pb.setVisibility(View.INVISIBLE);
        btn= (Button) findViewById(R.id.button);
        onClicked();

    }

    public void onClicked(){
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (isOnline()) {
                    requestData("http://10.0.0.2/database/getInfoDroid.php");
                } else {
                    Toast.makeText(MainActivity.this, "Network Unavailable", Toast.LENGTH_LONG).show();
                }

            }
        });
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {


        int id = item.getItemId();


        if (id == R.id.action_settings) {

        }

        return super.onOptionsItemSelected(item);
    }

    private void requestData(String uri) {
        MyTask task=new MyTask();
        task.execute(uri);
    }

    protected void updateDisplay(){
        if (userDataList!=null)
        {
            for (UserData userdata:userDataList
                 ) {
                output.append(userdata.getName() + "\n");


            }
        }


    }

    protected boolean isOnline(){
        ConnectivityManager cm= (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
        NetworkInfo netinfo= cm.getActiveNetworkInfo();
        if(netinfo!= null && netinfo.isConnectedOrConnecting()){
            return true;
        }
        else {
            return false;
        }



    }


    private class MyTask extends AsyncTask {

        @Override
        protected void onPreExecute() {
           // updateDisplay("Background Task Started");
            pb.setVisibility(View.VISIBLE);
        }


        @Override
        protected Object doInBackground(Object[] objects) {

            String content =HttpManager.getData(objects[0].toString());
            return content;


        }

        @Override
        protected void onPostExecute(Object o) {



            userDataList= UserDataJsonParser.parseFeed(o.toString());
            updateDisplay();
            pb.setVisibility(View.INVISIBLE);
        }


        @Override
        protected void onProgressUpdate(Object[] values) {
            //updateDisplay(values[0].toString());
        }
    }



}

HttpManager:

HttpManager:

public class HttpManager {


    public static String getData(String uri){
        StringBuilder sb=new StringBuilder();


        BufferedReader reader=null;
        try {
            URL url=new URL(uri);
            HttpURLConnection con= (HttpURLConnection) url.openConnection();
            reader=new BufferedReader(new InputStreamReader(con.getInputStream()));

            String line;
            while ((line=reader.readLine())!=null){
                sb.append(line+ "\n");

            }
            return sb.toString();

        }
       catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        finally {
            if (reader!=null){
                try {
                    reader.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
      return sb.toString();
    }


}

JsonParser类:

JsonParser class:

public class UserDataJsonParser {
    public static List<UserData> parseFeed(String content){
        System.out.println(content);
        try {
            JSONArray array = new JSONArray(content);


            List<UserData> dataList= new ArrayList<>();
            JSONObject obj=null;

            for (int i=0;i<array.length();i++) {

                obj = array.getJSONObject(i);


                UserData userData = new UserData();
                userData.setId(obj.getInt("id"));
                userData.setName(obj.getString("name"));
                userData.setSurname(obj.getString("surname"));
                userData.setUsername(obj.getString("username"));
                userData.setPassword(obj.getString("password"));

                dataList.add(userData);

            }
            return dataList;
        } catch (JSONException e) {
            e.printStackTrace();
            return null;
        }

    }
}

JSon数据我正在尝试解析:

JSon data am trying to parse:

[{"id":"1","name":"Hilary","surname":"Mwape","username":"Hilz","password":"milan"},{"id":"2","name":"John","surname":"Kalyondo","username":"jk","password":"jk92"},{"id":"3","name":"Sipiwe","surname":"Tembo","username":"ST","password":"ST91"}] 

LOGCAT:

java.net.ConnectException: failed to connect to /10.0.0.2 (port 80): connect failed: ETIMEDOUT (Connection timed out)
10-05 17:19:38.770 12022-14516/hilz.myapplication W/System.err:     at libcore.io.IoBridge.connect(IoBridge.java:124)
10-05 17:19:38.770 12022-14516/hilz.myapplication W/System.err:     at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:183)
10-05 17:19:38.770 12022-14516/hilz.myapplication W/System.err:     at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:452)
10-05 17:19:38.770 12022-14516/hilz.myapplication W/System.err:     at java.net.Socket.connect(Socket.java:884)
10-05 17:19:38.770 12022-14516/hilz.myapplication W/System.err:     at com.android.okhttp.internal.Platform.connectSocket(Platform.java:117)
10-05 17:19:38.770 12022-14516/hilz.myapplication W/System.err:     at com.android.okhttp.internal.http.SocketConnector.connectRawSocket(SocketConnector.java:160)
10-05 17:19:38.770 12022-14516/hilz.myapplication W/System.err:     at com.android.okhttp.internal.http.SocketConnector.connectCleartext(SocketConnector.java:67)
10-05 17:19:38.770 12022-14516/hilz.myapplication W/System.err:     at com.android.okhttp.Connection.connect(Connection.java:152)
10-05 17:19:38.771 12022-14516/hilz.myapplication W/System.err:     at com.android.okhttp.Connection.connectAndSetOwner(Connection.java:185)
10-05 17:19:38.771 12022-14516/hilz.myapplication W/System.err:     at com.android.okhttp.OkHttpClient$1.connectAndSetOwner(OkHttpClient.java:128)
10-05 17:19:38.771 12022-14516/hilz.myapplication W/System.err:     at com.android.okhttp.internal.http.HttpEngine.nextConnection(HttpEngine.java:341)
10-05 17:19:38.771 12022-14516/hilz.myapplication W/System.err:     at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:330)
10-05 17:19:38.771 12022-14516/hilz.myapplication W/System.err:     at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:248)
10-05 17:19:38.771 12022-14516/hilz.myapplication W/System.err:     at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:433)
10-05 17:19:38.771 12022-14516/hilz.myapplication W/System.err:     at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:384)
10-05 17:19:38.771 12022-14516/hilz.myapplication W/System.err:     at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:231)
10-05 17:19:38.771 12022-14516/hilz.myapplication W/System.err:     at hilz.myapplication.HttpManager.getData(HttpManager.java:22)
10-05 17:19:38.771 12022-14516/hilz.myapplication W/System.err:     at hilz.myapplication.MainActivity$MyTask.doInBackground(MainActivity.java:122)
10-05 17:19:38.771 12022-14516/hilz.myapplication W/System.err:     at android.os.AsyncTask$2.call(AsyncTask.java:295)
10-05 17:19:38.771 12022-14516/hilz.myapplication W/System.err:     at java.util.concurrent.FutureTask.run(FutureTask.java:237)
10-05 17:19:38.772 12022-14516/hilz.myapplication W/System.err:     at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234)
10-05 17:19:38.772 12022-14516/hilz.myapplication W/System.err:     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
10-05 17:19:38.772 12022-14516/hilz.myapplication W/System.err:     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
10-05 17:19:38.772 12022-14516/hilz.myapplication W/System.err:     at java.lang.Thread.run(Thread.java:818)
10-05 17:19:38.772 12022-14516/hilz.myapplication W/System.err: Caused by: android.system.ErrnoException: connect failed: ETIMEDOUT (Connection timed out)
10-05 17:19:38.772 12022-14516/hilz.myapplication W/System.err:     at libcore.io.Posix.connect(Native Method)
10-05 17:19:38.772 12022-14516/hilz.myapplication W/System.err:     at libcore.io.BlockGuardOs.connect(BlockGuardOs.java:111)
10-05 17:19:38.772 12022-14516/hilz.myapplication W/System.err:     at libcore.io.IoBridge.connectErrno(IoBridge.java:137)
10-05 17:19:38.772 12022-14516/hilz.myapplication W/System.err:     at libcore.io.IoBridge.connect(IoBridge.java:122)
10-05 17:19:38.773 12022-14516/hilz.myapplication W/System.err:     ... 23 more
10-05 17:19:38.810 12022-12022/hilz.myapplication W/System.err: org.json.JSONException: End of input at character 0 of 
10-05 17:19:38.811 12022-12022/hilz.myapplication W/System.err:     at org.json.JSONTokener.syntaxError(JSONTokener.java:449)
10-05 17:19:38.811 12022-12022/hilz.myapplication W/System.err:     at org.json.JSONTokener.nextValue(JSONTokener.java:97)
10-05 17:19:38.811 12022-12022/hilz.myapplication W/System.err:     at org.json.JSONArray.<init>(JSONArray.java:92)
10-05 17:19:38.811 12022-12022/hilz.myapplication W/System.err:     at org.json.JSONArray.<init>(JSONArray.java:108)
10-05 17:19:38.811 12022-12022/hilz.myapplication W/System.err:     at hilz.myapplication.UserDataJsonParser.parseFeed(UserDataJsonParser.java:15)
10-05 17:19:38.811 12022-12022/hilz.myapplication W/System.err:     at hilz.myapplication.MainActivity$MyTask.onPostExecute(MainActivity.java:133)
10-05 17:19:38.811 12022-12022/hilz.myapplication W/System.err:     at android.os.AsyncTask.finish(AsyncTask.java:651)
10-05 17:19:38.811 12022-12022/hilz.myapplication W/System.err:     at android.os.AsyncTask.-wrap1(AsyncTask.java)
10-05 17:19:38.811 12022-12022/hilz.myapplication W/System.err:     at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:668)
10-05 17:19:38.812 12022-12022/hilz.myapplication W/System.err:     at android.os.Handler.dispatchMessage(Handler.java:102)
10-05 17:19:38.812 12022-12022/hilz.myapplication W/System.err:     at android.os.Looper.loop(Looper.java:148)
10-05 17:19:38.812 12022-12022/hilz.myapplication W/System.err:     at android.app.ActivityThread.main(ActivityThread.java:5417)
10-05 17:19:38.812 12022-12022/hilz.myapplication W/System.err:     at java.lang.reflect.Method.invoke(Native Method)
10-05 17:19:38.812 12022-12022/hilz.myapplication W/System.err:     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
10-05 17:19:38.812 12022-12022/hilz.myapplication W/System.err:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
10-05 19:04:43.849 12022-12030/? I/art: Ignoring second debugger -- accepting and dropping


推荐答案

终于找到了一个解决方案,Everyone说使用10.0.0.2,但是我的URL中出现了上述错误,但使用了我的Pc实际ip n就像魅力一样工作

Finally found a solution,Everyone says use 10.0.0.2 but that gives the above error in my URL but used my Pc actual ip n worked like a charm

这篇关于java.net.ConnectException:无法连接到/10.0.0.2(端口80):连接失败:ETIMEDOUT(连接超时)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆