2016-07-13 7 views
0

huc.connect() löst die Ausnahme aus. Die Stack-Trace unten ist, was gedruckt wird. Wenn ich die URL durch Hinzufügen von www ändern, so ist die Zeichenfolge "http://www.sas.com/store/books", dann funktioniert es gut. Ich habe versucht, den Verbindungstimeout bis zu einer Minute zu erhöhen, aber die Timeout-Ausnahme wurde immer noch ausgelöst. Hat jemand irgendwelche Ideen, warum das passiert?Eine java.net.ConnectException wird ausgelöst, wenn HttpURLConnection verwendet wird

try 
    { 
     URL u = new URL("http://sas.com/store/books"); 
     HttpURLConnection huc = (HttpURLConnection)u.openConnection(); 
     huc.connect(); 
    } 
    catch(IOException e) 
    { 
     e.printStackTrace(); 
    } 

Stack-Trace:

java.net.ConnectException: Connection timed out: connect 
at java.net.DualStackPlainSocketImpl.connect0(Native Method) 
at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:79) 
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:172) 
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) 
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:432) 
at sun.net.www.http.HttpClient.openServer(HttpClient.java:527) 
at sun.net.www.http.HttpClient.<init>(HttpClient.java:211) 
at sun.net.www.http.HttpClient.New(HttpClient.java:308) 
at sun.net.www.http.HttpClient.New(HttpClient.java:326) 
at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:996) 
at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:932) 
at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:850) 
at support.Test.main(Test.java:22) 
+0

Wenn die www-URL funktioniert gut, warum Sie es nicht verwenden? – Zircon

+0

Ich bekomme keine Ausnahme, wenn ich den Code ausführen, den Sie gepostet haben. Es gibt jedoch einen signifikanten Unterschied zwischen den beiden URLs, da die URL ohne WWW einen HTTP-Code 301 vor der Weiterleitung an die URL mit dem www erstellt. –

Antwort

0

Sie sollten mit dem HttpURLConnection rumspielen. Es ist wahrscheinlich, dass Sie auf www.sas.com weitergeleitet werden. Überprüfen Sie den Antwortcode und die Header - ich glaube, wenn Sie tun, dass Sie Ihr Problem

0

Kontrolle der Import finden sollte, sein import java.net.HttpURLConnection