Checking the status of a web page
本问题已经有最佳答案,请猛点这里访问。
需要制作一个程序,该程序使用一个有效的网页URL,如www.stackoverflow.com/questions及其等效的IP地址。然后程序将找到该网页并将该网页的状态代码返回给我们,例如200 OK和404 Not Found。如果无法访问网页,则应返回一条说明情况的消息。
以下是我迄今为止所做的工作:
1 2 3 4 5 6 7 |
另外,如果我要检查一个页面,如http://www.stackoverflow.com,我将创建一个页面实例,然后执行如下操作:
1 2 3 4 | Page page = new PageImplementation (); Result result = page.check ("http://www.stackoverflow.com:60" ); if ( result.ok () ) { ... } else { ... } |
返回的对象是一个结果实例,当状态代码为200OK时,"OK"方法应该返回true,否则返回false。方法"msg"应以字符串形式返回状态代码。
看看JDK中的
基本上,您尝试连接到URL并检查响应头,或者在根本无法访问服务器时等待超时。
使用
1 2 3 4 5 | URL url = new URL("http://www.stackoverflow.com"); HttpURLConnection connection = (HttpURLConnection)url.openConnection(); connection.connect(); int httpStatusCode = connection.getResponseCode(); //200, 404 etc. |
您可以使用一些API,如Commons HTTP,
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | import org.apache.commons.httpclient.*; import org.apache.commons.httpclient.methods.*; import org.apache.commons.httpclient.params.HttpMethodParams; .......... public Result check ( String fullURL ) throws Exception { HttpClient client = new HttpClient(); GetMethod method = new GetMethod(url); int statusCode = client.executeMethod(method); //Update your result object based on statuscode } |