最近似乎可恢复上传无效。我上传的所有请求都返回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个不同的程序使用这个可恢复的上传,昨天两个都没问题,所以我猜这个问题不在我身边)
致以最诚挚的问候,
答案 0 :(得分:0)
Drive SDK中的500个错误是一种生活方式。我得到它们大约0.5%的时间。尝试以指数退避方式包装API调用并重试。
由于您的错误是在上传中,您可能需要根据其mime类型验证您上传的文件是否包含有效内容。 (例如,如果是text / html,文件是否包含有效的html)。
答案 1 :(得分:0)
4天后错误停止(没有对代码进行任何更改)。 PS:有一段时间有一种奇怪的行为(google appengine无效,而localhost是)。