1

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)
Anton
  • 11
  • 3

0 Answers0