检查网页的状态

时间:2013-03-06 16:10:02

标签: java networking web network-programming

需要制作一个程序,其中包含www.stackoverflow.com/questions等网页的有效网址及其IP地址等效项。然后程序将找到该网页并将页面的状态代码返回给我们,例如200 OK和404 NOT FOUND。如果无法访问该网页,则应返回一条消息,说明该情况。

这是我到目前为止所做的:

interface Result {
  public boolean ok ();
  public String message (); }

class Page {
  public Result check ( String wholeURL ) throws Exception {
     throw new Exception ( "Not sure about the rest”); } }

此外,如果我要查看像http://www.stackoverflow.com这样的页面,我将创建一个Page实例,然后执行以下操作:

Page page = new PageImplementation ();
Result result = page.check ( "http://www.stackoverflow.com:60" );
if ( result.ok () ) { ... }
else { ... }

返回的对象是Result的实例,当状态代码为200 OK时,“ok”方法应返回true,否则返回false。方法“msg”应该将状态代码返回为字符串。

2 个答案:

答案 0 :(得分:2)

查看JDK中的HttpURLConnection类或使用Apache Http Components

基本上,如果服务器根本无法访问,您尝试连接到url并检查响应标头或等待超时。

HttpURLConnection可能如下所示:

URL url = new URL("http://www.stackoverflow.com");
HttpURLConnection connection = (HttpURLConnection)url.openConnection();
connection.connect();

int httpStatusCode = connection.getResponseCode(); //200, 404 etc.

答案 1 :(得分:1)

你可以使用一些api like commons http,

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
}