在Websphere 8.x上使用Java 8。尝试从MS Graph API(/v1.0/reports/getEmailActivityUserDetail(period='D7')
端点)获取审核报告,以执行诸如报告上次用户登录活动等操作。
生成OAuth令牌等都可以正常工作,并且我可以成功获取302 redirect
URL,这使我可以使用postman
或{{1}从浏览器下载CSV报告文件。 },PHP的wget
等。
仅使用Java 8命令行应用程序在家工作,下面的代码即可抓取该文件。如果我将代码复制粘贴到我的工作机上,并通过Websphere Web应用程序调用它,则会收到IOException消息“连接重置”(注意-不被同级重置!)。我为file_get_contents
添加了SSL证书,并向我的构建和类路径添加了Apache Commons CSV lib / jar。
对于如何进一步调试以解决此问题的建议表示赞赏。
reports.office.com
StackTrace()的“有趣”部分表明可能正在发生SSL,但这不是通常的“忘记将Web服务器证书导入Websphere配置”错误,通常是我第一次连接API服务时看到的错误,等
String targetUrl = "https://reportsncu.office.com/data/v1.0/download?token=eyJ...*snip*...gFCg";
try {
InputStream input = new URL(targetUrl).openStream();
Reader r = new InputStreamReader(input);
Iterable<CSVRecord> records = CSVFormat.DEFAULT.parse(r);
for (CSVRecord record : records) {
String user = record.get(1);
String lastActive = record.get(5);
if (user.equals("user@example.com")) {
System.out.println(user + " last active " + lastActive);
}
}
r.close();
input.close();
} catch (MalformedURLException ex) {
System.out.println("MalformedURLException: "+ex.getMessage());
} catch (IOException ex) {
System.out.println("IOException: "+ex.getMessage());
}
答案 0 :(得分:1)
如果这无济于事,请回报,@ ivanivan!
您发布的堆栈跟踪带回了IBM JDK的可怕记忆:)我没有公开的任何具体信息-但这有所帮助! https://www.ibm.com/developerworks/community/forums/html/topic?id=ec367703-7957-4249-9f0b-559c717c0c87