gpt4 book ai didi

java - 从 msgraph api 下载 csv 报告

转载 作者:行者123 更新时间:2023-12-02 10:06:30 28 4
gpt4 key购买 nike

在 Websphere 8.x 上使用 Java 8。尝试从 MS Graph API(/v1.0/reports/getEmailActivityUserDetail(period='D7') 端点)获取审核报告以执行报告上次用户登录 Activity 等操作。

生成 OAuth token 等一切正常,我可以成功获取 302 重定向 URL,这让我可以使用 postman 从浏览器下载 CSV 报告文件code> 或 wget、PHP 的 file_get_contents

仅使用 Java 8 命令行应用程序在家工作,以下代码可以很好地获取文件。如果我将代码复制粘贴到我的工作机器上并通过 Websphere Web 应用程序调用它,我会收到一个 IOException ,其中包含消息“连接重置”(注意 - 不是由对等方重置!)。我已添加 reports.office.com 的 SSL 证书,并将 Apache Commons CSV lib/jar 添加到我的构建和类路径中。

感谢有关如何进一步调试以解决此问题的建议。

    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());
}

StackTrace() 的“有趣”部分表明可能存在 SSL 问题,但这不是我在首次连接到 API 服务时通常看到的常见“忘记将 Web 服务器证书导入到 Websphere 配置中”错误,等等

SystemErr R java.net.SocketException: Connection reset
SystemErr R at java.net.SocketInputStream.read(SocketInputStream.java:220)
SystemErr R at java.net.SocketInputStream.read(SocketInputStream.java:152)
SystemErr R at com.ibm.jsse2.a.a(a.java:79)
SystemErr R at com.ibm.jsse2.a.a(a.java:182)
SystemErr R at com.ibm.jsse2.as.a(as.java:883)
SystemErr R at com.ibm.jsse2.as.i(as.java:969)
SystemErr R at com.ibm.jsse2.as.a(as.java:680)
SystemErr R at com.ibm.jsse2.as.startHandshake(as.java:859)
SystemErr R at com.ibm.ws.ssl.config.WSSocket.startHandshake(WSSocket.java:414)
SystemErr R at com.ibm.net.ssl.www2.protocol.https.c.afterConnect(c.java:16)
SystemErr R at com.ibm.net.ssl.www2.protocol.https.d.connect(d.java:44)
SystemErr R at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1561)
SystemErr R at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1489)
SystemErr R at com.ibm.net.ssl.www2.protocol.https.b.getInputStream(b.java:93)
SystemErr R at java.net.URL.openStream(URL.java:1057)

最佳答案

如果这没有帮助,请报告,@ivanivan!

您发布的堆栈跟踪勾起了我对 IBM JDK 的可怕记忆:) 我没有任何公开的具体内容 - 但这对一些人有帮助! https://www.ibm.com/developerworks/community/forums/html/topic?id=ec367703-7957-4249-9f0b-559c717c0c87

关于java - 从 msgraph api 下载 csv 报告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55306370/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com