Invalid local machine address [Windows 8 only]

I want to check the request status code on url, but get the code

java.net.ConnectException: connect: Address is invalid on local machine or port is not valid on remote machine 

here is my code

 public static boolean linkExists(String URLName){ URLName = "http://www.google.com"; try { HttpURLConnection.setFollowRedirects(false); HttpURLConnection con = (HttpURLConnection) new URL(URLName).openConnection(); con.connect(); System.out.println(con.getResponseCode()); return (con.getResponseCode() == HttpURLConnection.HTTP_OK); } catch (Exception e) { return false; } } 

stack trace

 java.net.ConnectException: connect: Address is invalid on local machine, or port is not valid on remote machine at java.net.DualStackPlainSocketImpl.connect0(Native Method) at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:69) at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339) at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200) at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182) at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:157) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:391) at java.net.Socket.connect(Socket.java:579) at java.net.Socket.connect(Socket.java:528) at sun.net.NetworkClient.doConnect(NetworkClient.java:180) at sun.net.www.http.HttpClient.openServer(HttpClient.java:378) at sun.net.www.http.HttpClient.openServer(HttpClient.java:473) at sun.net.www.http.HttpClient.<init>(HttpClient.java:203) at sun.net.www.http.HttpClient.New(HttpClient.java:290) at sun.net.www.http.HttpClient.New(HttpClient.java:306) at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:995) at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:931) at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:849) at com.sls.lms.test.utilities.Utilities.linkExists(Utilities.java:70) at com.sls.lms.test.report.ReportTest.checkReportData(ReportTest.java:70) at com.sls.lms.test.report.ReportTest.CheckReportForGST(ReportTest.java:30) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27) at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229) at org.junit.runners.ParentRunner.run(ParentRunner.java:309) at org.junit.runner.JUnitCore.run(JUnitCore.java:160) at org.junit.runner.JUnitCore.run(JUnitCore.java:138) at org.testng.junit.JUnit4TestRunner.start(JUnit4TestRunner.java:81) at org.testng.junit.JUnit4TestRunner.run(JUnit4TestRunner.java:69) at org.testng.TestRunner$1.run(TestRunner.java:682) at org.testng.TestRunner.runWorkers(TestRunner.java:1012) at org.testng.TestRunner.privateRunJUnit(TestRunner.java:713) at org.testng.TestRunner.run(TestRunner.java:614) at org.testng.SuiteRunner.runTest(SuiteRunner.java:334) at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:329) at org.testng.SuiteRunner.privateRun(SuiteRunner.java:291) at org.testng.SuiteRunner.run(SuiteRunner.java:240) at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52) at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86) at org.testng.TestNG.runSuitesSequentially(TestNG.java:1198) at org.testng.TestNG.runSuitesLocally(TestNG.java:1123) at org.testng.TestNG.run(TestNG.java:1031) at org.testng.TestNG.privateMain(TestNG.java:1338) at org.testng.TestNG.main(TestNG.java:1307) 
+3
source share
8 answers

I believe this problem is caused by Java trying to use the IPV6 address when your OS does not support it, or is not configured properly to handle it.

You can force Java to use an IPV4 address with the following property:

-Djava.net.preferIPv4Stack = true

+8
source

One thing I notice is that your URL connection was not used ... you did not call connect (). I would be disappointed with the error message if this fixed your problem, but you probably wonโ€™t be able to get the response code until you make the request.

http://docs.oracle.com/javase/6/docs/api/java/net/URLConnection.html

+1
source

Works great for me with Eclipse . Definitely take Nikolayโ€™s advice and check if the firewall is working. Any forum post I saw related to this exception was somehow related to this situation.

0
source

Close all java programs and run run ( winkey + R ) or just search if you have a start button like me and write -Djava.net.preferIPv4Stack=true in. :)

0
source

This problem has been detected, but just turn off my antivirus and it works, this is due to the fact that the antivirus is blocking the ports.

0
source

I ran into the same problem. I have windows8 64 use netbeans7.4. my antivirus is Kaspersky. the solution is to turn your antivirus or pause the antivirus program, then run the code that will work.

 import java.net.*; import java.io.*; public class URLReader { public static void main(String[] args) throws Exception { URL oracle = new URL("http://www.oracle.com/"); BufferedReader in = new BufferedReader( new InputStreamReader(oracle.openStream())); String inputLine; while ((inputLine = in.readLine()) != null) System.out.println(inputLine); in.close(); } } 
0
source

I ran into the same problem. My anitvirus is kaspersky.the solution for this is, open kapsperksy-> settings-> Anti-Virus Protection-> moinitored ports-> select

0
source

I received this message when I tried to open a Socket with an IPv4 address and port 0. Maybe you should check the port used when this message appears.

0
source

All Articles