0

I was practicing the Source validation using HTTP in java and I came across this error.

In the following source code I was trying to get the source code of a website and thus I used the HttpClient and other methods of java.net.http, I was expecting the return value of response.statusCode() to be 200 as the website was working fine but instead got this error.

The source code is

import java.net.http.*;
import java.net.URI;

public class MyClass {
    public static void main(String args[]) {
        String link = "https://app.pluralsight.com/";
        
        HttpClient client = HttpClient.newHttpClient();
        HttpRequest request = HttpRequest.newBuilder(URI.create(link)).GET().build();
    
        try{
            
            HttpResponse<Void> response = client.send(request,HttpResponse.BodyHandlers.discarding());
            
            int status = response.statusCode();
            System.out.println(status);
            
        }catch(Exception e){
            e.printStackTrace();
        }
    }
}

Output

java.net.ConnectException
    at java.net.http/jdk.internal.net.http.HttpClientImpl.send(HttpClientImpl.java:573)
    at java.net.http/jdk.internal.net.http.HttpClientFacade.send(HttpClientFacade.java:119)
    at MyClass.main(MyClass.java:13)
Caused by: java.net.ConnectException
    at java.net.http/jdk.internal.net.http.common.Utils.toConnectException(Utils.java:1047)
    at java.net.http/jdk.internal.net.http.PlainHttpConnection.connectAsync(PlainHttpConnection.java:198)
    at java.net.http/jdk.internal.net.http.AsyncSSLConnection.connectAsync(AsyncSSLConnection.java:56)
    at java.net.http/jdk.internal.net.http.Http2Connection.createAsync(Http2Connection.java:378)
    at java.net.http/jdk.internal.net.http.Http2ClientImpl.getConnectionFor(Http2ClientImpl.java:128)
    at java.net.http/jdk.internal.net.http.ExchangeImpl.get(ExchangeImpl.java:93)
    at java.net.http/jdk.internal.net.http.Exchange.establishExchange(Exchange.java:343)
    at java.net.http/jdk.internal.net.http.Exchange.responseAsyncImpl0(Exchange.java:475)
    at java.net.http/jdk.internal.net.http.Exchange.responseAsyncImpl(Exchange.java:380)
    at java.net.http/jdk.internal.net.http.Exchange.responseAsync(Exchange.java:372)
    at java.net.http/jdk.internal.net.http.MultiExchange.responseAsyncImpl(MultiExchange.java:408)
    at java.net.http/jdk.internal.net.http.MultiExchange.lambda$responseAsyncImpl$7(MultiExchange.java:449)
    at java.base/java.util.concurrent.CompletableFuture.uniHandle(CompletableFuture.java:934)
    at java.base/java.util.concurrent.CompletableFuture.uniHandleStage(CompletableFuture.java:950)
    at java.base/java.util.concurrent.CompletableFuture.handle(CompletableFuture.java:2340)
    at java.net.http/jdk.internal.net.http.MultiExchange.responseAsyncImpl(MultiExchange.java:439)
    at java.net.http/jdk.internal.net.http.MultiExchange.lambda$responseAsync0$2(MultiExchange.java:341)
    at java.base/java.util.concurrent.CompletableFuture$UniCompose.tryFire(CompletableFuture.java:1150)
    at java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510)
    at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1773)
    at java.net.http/jdk.internal.net.http.HttpClientImpl$DelegatingExecutor.execute(HttpClientImpl.java:157)
    at java.base/java.util.concurrent.CompletableFuture.completeAsync(CompletableFuture.java:2673)
    at java.net.http/jdk.internal.net.http.MultiExchange.responseAsync(MultiExchange.java:294)
    at java.net.http/jdk.internal.net.http.HttpClientImpl.sendAsync(HttpClientImpl.java:654)
    at java.net.http/jdk.internal.net.http.HttpClientImpl.send(HttpClientImpl.java:552)
    ... 2 more
Caused by: java.nio.channels.UnresolvedAddressException
    at java.base/sun.nio.ch.Net.checkAddress(Net.java:149)
    at java.base/sun.nio.ch.Net.checkAddress(Net.java:157)
    at java.base/sun.nio.ch.SocketChannelImpl.checkRemote(SocketChannelImpl.java:816)
    at java.base/sun.nio.ch.SocketChannelImpl.connect(SocketChannelImpl.java:839)
    at java.net.http/jdk.internal.net.http.PlainHttpConnection.lambda$connectAsync$0(PlainHttpConnection.java:183)
    at java.base/java.security.AccessController.doPrivileged(AccessController.java:569)
    at java.net.http/jdk.internal.net.http.PlainHttpConnection.connectAsync(PlainHttpConnection.java:185)
    ... 25 more
Shashank Deepak
  • 163
  • 1
  • 8
  • Your code is throwing [UnresolvedAddressException](https://docs.oracle.com/javase/8/docs/api/java/nio/channels/UnresolvedAddressException.html). Pardon me if I am stating the obvious, but did you try searching the Internet for **java UnresolvedAddressException** ? – Abra Jun 20 '22 at 14:16
  • I tried after your recommendation but didn't find anything useful. – Shashank Deepak Jun 20 '22 at 15:37

1 Answers1

1

I have not gone into the deep details of your code but there is no issue with the code. I ran the program on my machine and got

302

It seems there is either some issue with the DNS or with your working internet.

Zahid Khan
  • 2,130
  • 2
  • 18
  • 31