Google Drive API v2:InsertMediaUpload - 收到空回复

时间:2013-09-26 07:26:39

标签: c# .net google-drive-api google-api-dotnet-client

使用:Drive v2:1.5.0.99 Beta,.NET Framework:4.5

通过服务帐户(AssertionFlowClient)正确进行身份验证(使用模拟)。 获得访问令牌。服务帐户已被授予域范围权限

我可以通过Service.Files.List()获取父文件夹--ID(strRootFolder);

byte[] byteArray = System.IO.File.ReadAllBytes(FileName);

Google.Apis.Drive.v2.Data.File flUpload = new Google.Apis.Drive.v2.Data.File();
flUpload.Title = Title;
flUpload.Description = Description;
flUpload.MimeType = MimeType;
flUpload.Parents = new List<ParentReference>() { new ParentReference() { Id = strRootFolder } };

Google.Apis.Drive.v2.FilesResource.InsertMediaUpload drvRequest = drvService.Files.Insert(flUpload, new System.IO.MemoryStream(byteArray), "text/plain");
drvRequest.Upload();

但是上传方法不会发送任何请求。没有异常被抛出。 Fiddler跟踪显示没有发送请求,因此request.responsebody始终为null。

我错过了什么吗?

2 个答案:

答案 0 :(得分:1)

如果在上载期间发生某些异常,则返回对象(IUploadProgress)应包含异常(请查看Exception属性)。 请检查什么是例外。

您还应该考虑使用不会阻止您的代码的UploadAsync(但首先您应该了解什么是异常)

答案 1 :(得分:0)

您应该从上传的内容中查看“异常”,这样可以更好地了解实际问题。

示例代码:

var progress = request.Upload();

if (progress.Exception != null)
{
   //Log execption, or break here to debug
   YourLoggingProvider.Log(progress.Exception.Message.ToString());
}