首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从msgraph api下载csv报告

从msgraph api下载csv报告
EN

Stack Overflow用户
提问于 2019-03-23 03:10:47
回答 1查看 203关注 0票数 0

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

生成OAuth令牌等都运行良好,我可以成功获取CSV,这让我可以使用postmanwget302 redirectfile_get_contents等从浏览器下载CSV文件。

只需使用Java8命令行应用程序在家中工作,下面的代码就可以很好地捕获文件。如果我将代码复制粘贴到我的工作机器上,并通过Websphere web app调用它,我会得到一个带有消息"connection reset“的IOException (注意--不是由peer重置!)。我已经为reports.office.com添加了SSL证书,并将Apache Commons CSV /jar添加到我的构建路径和类路径中。

对于如何进一步调试修复此问题的建议,我们将不胜感激。

代码语言:javascript
运行
复制
    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服务时经常看到的“忘记将webserver cert导入websphere config”错误,等等。

代码语言:javascript
运行
复制
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)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-23 08:35:50

如果这不起作用,请返回@ivanivan!

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55306370

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档