使用Java,我如何测试URL是否可联系,并返回有效的响应?
http://stackoverflow.com/about
brasskazoo.. 42
作为单元测试的解决方案:
public void testURL() throws Exception { String strUrl = "http://stackoverflow.com/about"; try { URL url = new URL(strUrl); HttpURLConnection urlConn = (HttpURLConnection) url.openConnection(); urlConn.connect(); assertEquals(HttpURLConnection.HTTP_OK, urlConn.getResponseCode()); } catch (IOException e) { System.err.println("Error creating HTTP connection"); e.printStackTrace(); throw e; } }
如果您在网络上可用的计算机上使用它但没有运行Web服务器,则此方法将挂起.您需要在HttpURLConnection上使用setConnectTimeout和/或setReadTimeout. (5认同)
John T.. 6
因为我记得java 5,InetAdress类包含一个名为isReachable()的方法; 所以你可以使用它在java中进行ping实现.您还可以为此方法指定超时.这只是上面发布的单元测试方法的另一种替代方法,可能更有效.
作为单元测试的解决方案:
public void testURL() throws Exception { String strUrl = "http://stackoverflow.com/about"; try { URL url = new URL(strUrl); HttpURLConnection urlConn = (HttpURLConnection) url.openConnection(); urlConn.connect(); assertEquals(HttpURLConnection.HTTP_OK, urlConn.getResponseCode()); } catch (IOException e) { System.err.println("Error creating HTTP connection"); e.printStackTrace(); throw e; } }
因为我记得java 5,InetAdress类包含一个名为isReachable()的方法; 所以你可以使用它在java中进行ping实现.您还可以为此方法指定超时.这只是上面发布的单元测试方法的另一种替代方法,可能更有效.