自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格式是否需要更改,我需要将其合并到我的代码中?
答案 0 :(得分:1)
您是否已禁用网络安全?好像谷歌驱动器正在检查那个。
- 禁用-web的安全
如果是,请启用Web安全性。它对我有用。
答案 1 :(得分:0)
有些时候,downloadurl已过期,以便时间再次创建新请求和下载文件。 还因为不正确的刷新令牌和访问令牌。