Google云端硬盘(401)未授权错误

时间:2013-04-18 02:05:33

标签: google-drive-api

自10月以来,我一直在使用Google Drive SDK集成。从那以后它运行良好,我没有修改项目中的代码,因为我得到了它的工作。今天,由于某些未知原因,每个下载或上传文件到驱动器的请求都会返回错误:

远程服务器返回了未经授权的错误(401)。

我目前正在处理的代码部分是:

    public static Stream GetDownloadStream(string id)
    {
        File file = DriveService.Files.Get(id).Fetch();
        if (!String.IsNullOrEmpty(file.DownloadUrl))
        {
            Stream stream;
            var request = (HttpWebRequest) WebRequest.Create(
                new Uri(file.DownloadUrl));
            Auth.ApplyAuthenticationToRequest(request);
            try
            {
                var response = (HttpWebResponse)request.GetResponse();
                if (response.StatusCode == HttpStatusCode.OK)
                {
                    stream = response.GetResponseStream();
                }
                else
                {
                    throw new Exception(response.StatusDescription);
                }
                return stream;
            }
            catch(Exception e)
            {
                GetCredentials();
                return GetDownloadStream(id);
            }
        }
        throw new Exception("File Cannot Be Downloaded.");
    }

在request.GetResponse()方法调用中返回错误。 DriveService正确加载文件,文件似乎是正确形成的DownloadURL。关于DriveService的所有内容似乎都可以在其余代码中使用,它可以正确搜索和检索文件信息,但由于某种原因,它不会下载或上传。谷歌服务器端的DownloadURL格式是否需要更改,我需要将其合并到我的代码中?

2 个答案:

答案 0 :(得分:1)

您是否已禁用网络安全?好像谷歌驱动器正在检查那个。

- 禁用-web的安全

如果是,请启用Web安全性。它对我有用。

答案 1 :(得分:0)

有些时候,downloadurl已过期,以便时间再次创建新请求和下载文件。 还因为不正确的刷新令牌和访问令牌。