天天看点

Java使用HttpClient读取网页

import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.CookieManager;
import java.net.ProxySelector;
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.time.Duration;
import java.util.concurrent.Executors;

import javax.net.ssl.SSLParameters;

public class HttpClientCookieSessionRedirectSample4 {
	public static void main(String[] args) throws Exception {

		long startTimerConnect = System.currentTimeMillis();
		HttpClient client = HttpClient.newBuilder()
				.followRedirects(HttpClient.Redirect.ALWAYS).cookieHandler(new CookieManager())
				.connectTimeout(Duration.ofMillis(200)).build();
		long stopTimerConnect = System.currentTimeMillis();
		int connect_time = (int) ((int) stopTimerConnect - startTimerConnect);
		System.out.println("ConnetionTime: " + connect_time);

		

		long startTimerRead = System.currentTimeMillis();
		HttpRequest request = HttpRequest.newBuilder().timeout(Duration.ofMillis(400))
				.uri(URI.create("http://localhost:8080/jspwebmon/validate.jsp?username=test&password=test")).build();
		long stopTimerRead = System.currentTimeMillis();
		int read_time = (int) ((int) stopTimerRead - startTimerRead);
		System.out.println("ReadTime: " + read_time);
		
		
		
		long startTimerHttpResponse = System.currentTimeMillis();
		HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
		String responseBody = response.body();
		int responseStatusCode = response.statusCode();
		long stopTimerHttpResponse = System.currentTimeMillis();
		int HttpResponse_time = (int) ((int) stopTimerHttpResponse - startTimerHttpResponse);
		System.out.println("HttpResponse_time: " + HttpResponse_time);
		

		//System.out.println("httpGetRequest: " + responseBody);
		System.out.println("httpGetRequest status code: " + responseStatusCode);
		
	}
}