Ich versuche, eine Get-Anfrage in Java mit HttpURLConnection zu machen. Die Antwort ist 200, wenn ich in meinem Heimnetzwerk bin, aber auf der Firma nework bekomme ich einen Fehler beim Verbindungsaufbau (SocketTimeoutException). Ich habe das Timeout auf 20 Sekunden geändert und bekomme diesen Fehler nach ein paar Sekunden immer noch. Der Link ist verfügbar, wenn ich ihn im Browser im selben Netzwerk sehe, in dem ich die Zeitüberschreitung vom Java-Code bekomme, also könnte es immer noch ein Firewall-Problem sein? Oder etwas anderes? Hier ist mein Code:Server Timeout auf Http GET auf bestimmten Netzwerk
String USER_AGENT = "Mozilla/5.0";
URL obj = new URL("http://jsonplaceholder.typicode.com/posts/1");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setConnectTimeout(20000);
con.setRequestMethod("GET");
con.setRequestProperty("User-Agent", USER_AGENT);
int responseCode = con.getResponseCode();
System.out.println("GET Response Code :: " + responseCode);
liefert Ihr Unternehmen einen Proxy? – 0x44656e6e795279616e
Ich habe nicht viel Erfahrung mit Proxies. Wenn es notwendig ist, bin ich sicher, dass sie es tun, aber wenn ich die Antwort in meinem Chrome-Browser im selben Netzwerk sehen kann, könnte das immer noch ein Problem sein? –
Es könnte sicherlich. Wenn Sie Chrome unter Windows, wie IE/Edge, meinen, wird die System- (Windows) Proxy-Einstellung verwendet, die automatisch von der WPAD- und/oder Gruppenrichtlinie festgelegt werden kann, oder wenn es sich um einen vom Unternehmen bereitgestellten Computer handelt. Wenn das Unternehmensnetzwerk die Verwendung des Proxy für HTTP erfordert, wie viele dies für verschiedene gute oder schlechte (und hässliche!) Gründe tun, dann verwendet Chrome die Proxy-Einstellung und funktioniert, aber Java verwendet es nicht und schlägt fehl. Wenn Sie nicht in Windows arbeiten, geben Sie an, woran Sie sind. –