我正在尝试在测试Java应用程序中对Confluence进行API调用,但是在Red Hat Linux系统上运行时,连接会挂起。
当我在Windows上运行该应用程序时,它将发出呼叫并做出应有的响应。当我在Red Hat Linux发行版上运行该应用程序时,连接挂起并最终超时。
要进行故障排除,我尝试通过curl命令发出API请求,并且发生了同样的问题。在设置了http_proxy和https_proxy环境变量之后,我再次尝试了make curl请求,这次,它成功了。
我自然认为这是问题所在,因此尝试在代码中执行相同的操作。
System.setProperty("http.proxyHost", "X.X.X.X");
System.setProperty("http.proxyPort", "XXXX");
System.setProperty("https.proxyHost", "X.X.X.X");
System.setProperty("https.proxyPort", "XXXX");
URL url = new URL("https://confluence.maerskdev.net/rest/api/content/?title=Parent%20Page&spaceKey=GD&expand=history");
http = (HttpURLConnection) url.openConnection();
http.setRequestMethod("GET");
http.setRequestProperty("Authorization", "Basic " + encodedString);
http.setRequestProperty("Content-Type", "application/json; charset=UTF-8");
http.setDoInput(true);
java.util.Scanner s = new java.util.Scanner(http.getInputStream()).useDelimiter("\\A");
String result = s.hasNext() ? s.next() : "";
System.out.println(result);
尽管同时设置了环境变量和代码内,连接仍然挂起。我不知道为什么连接挂起。我希望进行该调用并收到JSON消息。