3

我几个月来一直在 Java 和 Objective-c 中使用 Google Drive SDK,今天突然(2013 年 7 月 10 日)使用 java api(google-api-client-1.15.0-rc.jar 和版本)插入新文件1.14) 在 FileInsert.execute() 上执行失败。这是我一直在使用的静态辅助方法(基本上是 DrEdit 教程的副本):

    public static File insertFile(Drive driveService, String title, String description,
            String parentId, String mimeType, java.io.File content) {
        System.out.println("<GDrive insertFile> start");
        File body = new File();
        body.setTitle(title);
        body.setDescription(description);
        body.setMimeType(mimeType);

        if (parentId != null && parentId.length() > 0) {
            body.setParents( Arrays.asList(new ParentReference().setId(parentId)) );
        }
        Insert fileInsert = null;
        System.out.println("<GDrive insertFile> before content attache");
        if (content != null && content.length() > 0) {
            FileContent mediaContent = new FileContent(mimeType, content);
            try { fileInsert = driveService.files().insert(body, mediaContent); }
            catch (IOException e) { e.printStackTrace(); }
        } else {
            try { fileInsert = driveService.files().insert(body); }
            catch (IOException e) { e.printStackTrace(); }
        }

        try {
            if (fileInsert != null) {
                System.out.println("<GDrive insertFile> before execute");
                File file = fileInsert.execute();
                System.out.println("<GDrive insertFile> file posted " + file.getId());
                return file;
            } else return null;
        } catch (IOException e) {
            System.out.println("An error occured: " + e);
            return null;
        }
    }

显然 System.out 用于定位问题,它在“执行前”挂断。我找不到任何关于 Google 服务器问题或 API 使用方式更改的帖子。以下是应用程序在 20 - 180 秒后失败时记录的错误消息:

An error occured: java.net.SocketTimeoutException: Read timed out
Exception in thread "main" java.lang.NullPointerException

谢谢。

4

0 回答 0