需要制作一个程序,其中包含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”应该将状态代码返回为字符串。
答案 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
}