For some reason the first request passes successfully, and the second knocks out an error 502. With a proxy all is good, I tried to send the second request through postman using this proxy and everything worked perfectly. What could be the problem?
public static void main(String[] args) throws IOException, InterruptedException {
HttpClient client = HttpClient.newBuilder()
.version(HttpClient.Version.HTTP_2)
.followRedirects(HttpClient.Redirect.ALWAYS)
.cookieHandler(new CookieManager())
.proxy(ProxySelector.of(new InetSocketAddress("217.29.53.100", 16608)))
.connectTimeout(Duration.ofSeconds(60))
.build();
HttpRequest request1 = HttpRequest.newBuilder()
.uri(URI.create("https://translate.google.com.ua/"))
.GET()
.build();
HttpRequest request2 = HttpRequest.newBuilder()
.uri(URI.create("https://proxy6.net/"))
.GET()
.build();
HttpResponse<Void> response1 = client.send(request1, HttpResponse.BodyHandlers.discarding());
System.out.println(response1);
HttpResponse<Void> response2 = client.send(request2, HttpResponse.BodyHandlers.discarding());
System.out.println(response2);
}
Here is the output of the program:
(GET https://translate.google.com.ua/) 200
Exception in thread "main" java.io.IOException: Tunnel failed, got: 502
at java.net.http/jdk.internal.net.http.HttpClientImpl.send(HttpClientImpl.java:564)
at java.net.http/jdk.internal.net.http.HttpClientFacade.send(HttpClientFacade.java:119)
at chilton.context.ChiltonContext.main(ChiltonContext.java:64)
Caused by: java.io.IOException: Tunnel failed, got: 502
at java.net.http/jdk.internal.net.http.PlainTunnelingConnection.lambda$connectAsync$2(PlainTunnelingConnection.java:96)
at java.base/java.util.concurrent.CompletableFuture$UniCompose.tryFire(CompletableFuture.java:1146)
at java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506)
at java.base/java.util.concurrent.CompletableFuture.postFire(CompletableFuture.java:610)
at java.base/java.util.concurrent.CompletableFuture$UniApply.tryFire(CompletableFuture.java:649)
at java.base/java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:478)
at java.net.http/jdk.internal.net.http.HttpClientImpl$DelegatingExecutor.execute(HttpClientImpl.java:155)
at java.base/java.util.concurrent.CompletableFuture$UniCompletion.claim(CompletableFuture.java:568)
at java.base/java.util.concurrent.CompletableFuture$UniApply.tryFire(CompletableFuture.java:638)
at java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506)
at java.base/java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:2137)
at java.net.http/jdk.internal.net.http.Http1Response$HeadersReader.handle(Http1Response.java:694)
at java.net.http/jdk.internal.net.http.Http1Response$HeadersReader.handle(Http1Response.java:620)
at java.net.http/jdk.internal.net.http.Http1Response$Receiver.accept(Http1Response.java:611)
at java.net.http/jdk.internal.net.http.Http1Response$HeadersReader.tryAsyncReceive(Http1Response.java:667)
at java.net.http/jdk.internal.net.http.Http1AsyncReceiver.flush(Http1AsyncReceiver.java:233)
at java.net.http/jdk.internal.net.http.common.SequentialScheduler$SynchronizedRestartableTask.run(SequentialScheduler.java:175)
at java.net.http/jdk.internal.net.http.common.SequentialScheduler$CompleteRestartableTask.run(SequentialScheduler.java:147)
at java.net.http/jdk.internal.net.http.common.SequentialScheduler$SchedulableTask.run(SequentialScheduler.java:198)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)
at java.base/java.lang.Thread.run(Thread.java:832)