package org.archive.wayback.liveweb;
import java.net.SocketTimeoutException;
import junit.framework.TestCase;
import org.apache.commons.httpclient.HostConfiguration;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpMethod;
import org.apache.commons.httpclient.MultiThreadedHttpConnectionManager;
import org.apache.commons.httpclient.methods.GetMethod;
import org.archive.wayback.exception.LiveDocumentNotAvailableException;
import org.archive.wayback.util.ByteOp;
public class URLtoARCCacherTest extends TestCase {
public void testSocketTimeout() throws Exception {
MultiThreadedHttpConnectionManager connectionManager = null;
HostConfiguration hostConfiguration = null;
HttpClient http = null;
connectionManager = new MultiThreadedHttpConnectionManager();
hostConfiguration = new HostConfiguration();
http = new HttpClient(connectionManager);
http.setHostConfiguration(hostConfiguration);
HttpMethod method = null;
// String urlString = "http://wayback.archive-it.org:6100/one";
String urlString = "http://netpreserve.org/";
int socketTimeoutMS = 100;
int connectTimeoutMS = 200;
connectionManager.getParams().setSoTimeout(socketTimeoutMS);
connectionManager.getParams().setConnectionTimeout(connectTimeoutMS);
try {
method = new GetMethod(urlString);
} catch(IllegalArgumentException e) {
throw new LiveDocumentNotAvailableException("Url:" + urlString +
"does not look like an URL?");
}
try {
int status = http.executeMethod(method);
System.out.println("Got response code: " + status);
ByteOp.copyStream(method.getResponseBodyAsStream(), System.out);
} catch (SocketTimeoutException e) {
// OK
} catch (Exception e) {
e.printStackTrace();
}
}
}