Google Drive Files.list:500错误

时间:2013-03-28 15:08:06

标签: google-drive-api

对于我们的应用程序,我们使用的是具有两条腿授权的Google Drive SDK。 我们正在使用Drive SDK很长一段时间,但今天我们遇到了Files.list API(https://developers.google.com/drive/v2/reference/files/list)的新问题。对于某些用户,我们遇到以下错误:

  

{“error”:{“code”:500,“message”:null}}

Drive SDK一切正常吗?这个错误意味着什么?

1 个答案:

答案 0 :(得分:1)

我建议您阅读此post,这有助于我配置并使用Android

连接到Google云端硬盘

修改

我有相同的500错误服务器,以避免此错误谷歌推荐Exponential backoff根据他们:

  

指数退避是网络的标准错误处理策略   客户端定期重试失败请求的应用程序   越来越多的时间。如果请求量很大或者   繁重的网络流量导致服务器返回错误,指数级   退避可能是处理这些错误的好策略。反过来,   它不是处理与之无关的错误的相关策略   限速,网络容量或响应时间,如无效   授权凭证或文件未找到错误。

     

使用得当,指数退避可以提高效率   带宽使用,减少了获得所需的请求数量   成功响应,并最大化请求的吞吐量   并发环境。

示例:

Android代码:

FileList files = null;

for (int n = 0; n < 5; ++n) {

   try {
      setStatus("trying n = " + n);
      files = service.files()
        .list()
        .setMaxResults(1)
        .setQ("mimeType = 'application/vnd.google-apps.folder' and title = 'folder_title'")
        .execute();
   }
   catch (GoogleJsonResponseException e)
   {
      if (e.getDetails().getCode() == 500) {
        try {
            Thread.sleep((1 << n) * 1000 + randomGenerator.nextInt(1001));
            setStatus("sleep() n = " + n);
        } catch (InterruptedException e1) {
            // TODO Auto-generated catch block
            setStatus("InterruptedException n = " + n + " " + e1.getMessage());
            e1.printStackTrace();
        }
      }
   }

}

我已经测试了这段代码,并在最后一次尝试中成功连接

Google建议使用4xx和5xx服务器error

的指数退避

4xx server错误主要用于身份验证问题