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