无法在android中获取本地服务器JSON响应java.net.ConnectException:连接被拒绝

问题描述

当我在模拟器中使用IP:10.0.2.2时,它会获得完美的JSON响应。@H_404_1@

现在我想在手机上进行测试。@H_404_1@

我的服务器正在本地计算机上运行。我找到了本地计算机IP,并给URL像新的JsonTask()。execute(“ http://192.168.x.xxx:8080/rsi/v1”); 但是我无法获得JSON响应。@H_404_1@

请找到以下代码:@H_404_1@

MainActivity.java @H_404_1@

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
      new JsonTask().execute("http://192.168.x.xxx:8080/rsi/v1");
    //new JsonTask().execute("http://127.0.0.1:8080/rsi/v1");//device
    //new JsonTask().execute("http://10.0.2.2:8080/rsi/v1");//emulator
}

private class JsonTask extends AsyncTask<String,String,String> {

    protected void onPreExecute() {
        super.onPreExecute();

        pd = new ProgressDialog(MainActivity.this);
        pd.setMessage("Please wait");
        pd.setCancelable(false);
        pd.show();
    }
    protected String doInBackground(String... params) {
        HttpURLConnection connection = null;
        BufferedReader reader = null;
        try {
            URL url = new URL(params[0]);

            connection = (HttpURLConnection) url.openConnection();
            connection.connect();
            InputStream stream = connection.getInputStream();
            reader = new BufferedReader(new InputStreamReader(stream));
            StringBuffer buffer = new StringBuffer();
            String line = "";

            while ((line = reader.readLine()) != null) {
                buffer.append(line + "\n");
                Log.d("TAG","socket===>res==>" + line);   //here u ll get whole response...... :-)
            }
            return buffer.toString();
        } catch (MalformedURLException e) {
            e.printstacktrace();
        } catch (IOException e) {
            e.printstacktrace();
        } finally {
            if (connection != null) {
                connection.disconnect();
            }
            try {
                if (reader != null) {
                    reader.close();
                }
            } catch (IOException e) {
                e.printstacktrace();
            }
        }
        return null;
    }

    @Override
    protected void onPostExecute(String result) {
        super.onPostExecute(result);
        if (pd.isShowing()) {
            pd.dismiss();
        }
        //txtJson.setText(result);
        Log.d("TAG","socket====>result===>" + result);

    }
}

以如下方式获取logcat:@H_404_1@

   D/NetworkSecurityConfig: Using Network Security Config from resource network_security_config debugBuild: true
   java.net.ConnectException: Connection refused
 at java.net.PlainSocketImpl.socketConnect(Native Method)
 at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:334)
 at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:178)
 at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:196)
 at java.net.socksSocketImpl.connect(SocksSocketImpl.java:356)
 at java.net.socket.connect(Socket.java:586)
 at com.android.okhttp.internal.Platform.connectSocket(Platform.java:113)
 at com.android.okhttp.Connection.connectSocket(Connection.java:196)
 at com.android.okhttp.Connection.connect(Connection.java:172)
 at com.android.okhttp.Connection.connectAndSetowner(Connection.java:367)
 at com.android.okhttp.OkHttpClient$1.connectAndSetowner(OkHttpClient.java:130)
 at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:330)
 at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:247)
 at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:457)
 at com.android.okhttp.internal.huc.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:126)
 at com.aaasol.aaa.MainActivity$JsonTask.doInBackground(MainActivity.java:186)
 at com.aaasol.aaa.MainActivity$JsonTask.doInBackground(MainActivity.java:164)
 at android.os.AsyncTask$2.call(AsyncTask.java:304)
 at java.util.concurrent.FutureTask.run(FutureTask.java:237)
 at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:243)
 at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
 at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
 at java.lang.Thread.run(Thread.java:760)

注意:当我输入链接http://127.0.0.1:8080/rsi/v1)时,本地计算机的Web浏览器会获得正确的响应。@H_404_1@

请问我做错了什么。@H_404_1@

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)