如何测试打开的连接是否正常工作?
How test if an open connection is working?
我们正在为连接到内部 wifi 的移动设备开发一些内部应用程序。我们遇到了一些问题,因为我们只检查设备是否使用 ConnectivityManager 连接。但是我们不仅需要检查是否有连接,还需要检查设备和服务器之间的连接是否正常。
问题是 ConnectivityManager 告诉我们 wifi 已连接。但是,如果设备位于覆盖范围小的区域,应用程序在尝试连接时会出错。
我们如何轻松地检查我们针对服务器打开的连接是否仍在正确响应?例如,连接针对 SQL 服务器打开的应用程序之一。有什么方法可以检查我们是否到达了服务器并且它给了我们一个 ok,并且我们没有因为覆盖率低而丢失连接和包?
谢谢!!
如果收到 NullPointerException
或 IOException
很可能没有连接或连接超时,您可以尝试对服务器执行 ping 操作。
你可以在这里阅读更多 an answer to similar question by syb0rg。还请记住将这段代码包装在 AsyncTask
或 Thread
中以防止您的应用程序崩溃。
try {
//replace URL with your domain
URL url = new URL("http://www.google.com");
HttpURLConnection urlConnect = (HttpURLConnection) url.openConnection();
urlConnect.setConnectTimeout(1000);
urlConnect.getContent();
System.out.println("Connection established.");
} catch (NullPointerException np) {
np.printStackTrace();
} catch (IOException io) {
io.printStackTrace();
}
我们正在为连接到内部 wifi 的移动设备开发一些内部应用程序。我们遇到了一些问题,因为我们只检查设备是否使用 ConnectivityManager 连接。但是我们不仅需要检查是否有连接,还需要检查设备和服务器之间的连接是否正常。
问题是 ConnectivityManager 告诉我们 wifi 已连接。但是,如果设备位于覆盖范围小的区域,应用程序在尝试连接时会出错。
我们如何轻松地检查我们针对服务器打开的连接是否仍在正确响应?例如,连接针对 SQL 服务器打开的应用程序之一。有什么方法可以检查我们是否到达了服务器并且它给了我们一个 ok,并且我们没有因为覆盖率低而丢失连接和包?
谢谢!!
如果收到 NullPointerException
或 IOException
很可能没有连接或连接超时,您可以尝试对服务器执行 ping 操作。
你可以在这里阅读更多 an answer to similar question by syb0rg。还请记住将这段代码包装在 AsyncTask
或 Thread
中以防止您的应用程序崩溃。
try {
//replace URL with your domain
URL url = new URL("http://www.google.com");
HttpURLConnection urlConnect = (HttpURLConnection) url.openConnection();
urlConnect.setConnectTimeout(1000);
urlConnect.getContent();
System.out.println("Connection established.");
} catch (NullPointerException np) {
np.printStackTrace();
} catch (IOException io) {
io.printStackTrace();
}