0

最近似乎可恢复上传不起作用。我所有的上传请求都返回 500。

这是我收到的异常堆栈跟踪:

        Caused by: java.io.IOException: Server returned HTTP response code: 500 for URL: https://docs.google.com/feeds/upload/create-session/default/private/full/folder%3A0B6Qc9CKRbiEMNTQ2NWYzMjEtY2EwNC00NzRhLWFjNGQtNGEzNzEzNzc4MTRj/contents/?convert=false&upload_id=AEnB2UpuikBd2Rd1wk1j8BPAI3KKTJ1pWoAJEPm3KZCBqLIqj6Rm9uOy7NezC8dzROUghRpTI6Clblj8j4zhKO91ductHL2LBA
        at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1436)
        at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:379)
        at sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:318)
        at GoogleDocsManager.uploadWithResumableUpload(GoogleDocsManager.java:1342)

这是代码(自昨天(21-11-2012)以来没有进行任何更改)

        String link = initiateSession(mediaBytes, contentType, title, withConvert);

        URL url = new URL(link); 
        HttpURLConnection copyHttpUrlConn = (HttpURLConnection) url.openConnection(); 
        copyHttpUrlConn.setDoOutput(true); 
        copyHttpUrlConn.setRequestMethod("PUT"); 

        copyHttpUrlConn.setRequestProperty("Content-Type",contentType);
        copyHttpUrlConn.setRequestProperty("Content-Length", mediaBytes.length + "");

        String range = "bytes 0-" + (mediaBytes.length - 1) + "/" + (mediaBytes.length);

        copyHttpUrlConn.setRequestProperty("Content-Range", range);

        OutputStream outputStream = copyHttpUrlConn.getOutputStream(); 

        outputStream.write(mediaBytes);

        System.out.println("Code: " + copyHttpUrlConn.getResponseCode());// here I receive the exception

现在我真的不知道在哪里写这种帖子......从旧的 DocumentList Api 组我被重定向到这里。

我希望这个问题能很快得到解决(我有 2 个不同的程序使用这个可恢复上传,昨天两个程序都正常,所以我想这个问题不在我这边)

此致,

4

2 回答 2

0

Drive SDK 中的 500 错误是一种生活方式。我得到它们的几率约为 0.5%。尝试将您的 API 调用包装在指数退避中并重试。

由于您的错误是在上传时,您可能需要根据其 MIME 类型验证您上传的文件是否具有有效内容。(例如,如果它是文本/html,文件是否包含有效的 html)。

于 2012-11-22T14:30:25.610 回答
0

4 天后,错误停止(代码没有更改)。PS:有一段时间有一个奇怪的行为(在 google appengine 上不起作用,并且 localhost 是的)。

于 2012-11-30T10:29:42.180 回答