UnknownHost

HelloHttpClientUnknownHostMain

存在しないホスト(サーバー)に接続しようとしたとき

■コード

package hello.org.apache.commons.httpclient;

import java.io.IOException;

import java.net.UnknownHostException;

import org.apache.commons.httpclient.HttpClient;

import org.apache.commons.httpclient.HttpException;

import org.apache.commons.httpclient.HttpMethod;

import org.apache.commons.httpclient.methods.GetMethod;

public class HelloHttpClientUnknownHostMain {

/**

* @param args

*/

public static void main(String[] args) {

HttpClient client = new HttpClient();


// occurs java.net.UnknownHostException (IOException)

HttpMethod method = new GetMethod("http://servernotexist/");

try {

client.executeMethod(method);

byte[] responseBody = method.getResponseBody();

System.out.println(new String(responseBody));

} catch (HttpException e) {

e.printStackTrace();

} catch (UnknownHostException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

} finally {

method.releaseConnection();

client.getHttpConnectionManager().closeIdleConnections(0);

}

}

}

■結果

java.net.UnknownHostException: servernotexist at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:177)

at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)

at java.net.Socket.connect(Socket.java:525)

at java.net.Socket.connect(Socket.java:475)

at java.net.Socket.<init>(Socket.java:372)

at java.net.Socket.<init>(Socket.java:246)

at org.apache.commons.httpclient.protocol.DefaultProtocolSocketFactory.createSocket(DefaultProtocolSocketFactory.java:80)

at org.apache.commons.httpclient.protocol.DefaultProtocolSocketFactory.createSocket(DefaultProtocolSocketFactory.java:122)

at org.apache.commons.httpclient.HttpConnection.open(HttpConnection.java:707)

at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:387)

at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:171)

at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397)

at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:323)

at hello.org.apache.commons.httpclient.HelloHttpClientUnknownHostMain.main(HelloHttpClientUnknownHostMain.java:23)