1

www.stackoverflow.com/questionsのようなウェブページの有効なURLとそれに相当するIPアドレスを取得するプログラムを作成する必要があります。次に、プログラムはそのWebページを見つけて、200OKや404NOTFOUNDなどのページのステータスコードを返します。Webページにアクセスできない場合は、状況を説明するメッセージを返す必要があります。

これが私がこれまでにしたことです:

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”); } }

Also if I were to check a page like http://www.stackoverflow.com I’ll create an instance of Page and then do something like this:

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

The object that is returned is an instance of Result, and the “ok” method should return true when the status code is 200 OK but false otherwise. The method “msg” should return the status code as string.

4

2 に答える 2

2

HttpURLConnectionJDK 内のクラスを確認するか、 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.
于 2013-03-06T16:23:26.663 に答える
1

commonshttpのようないくつかのAPIを使用できます。

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
}
于 2013-03-06T16:25:35.190 に答える