2014-09-25 40 views
2

我将文件上传到谷歌驱动器发现这里的教程如下:ArgumentNullException:“基本URI”为空,将文件上载到谷歌驱动器时

https://developers.google.com/drive/web/quickstart/quickstart-cs

我已经创建了一个编号和密钥我主要帐户,并使用该信息,我可以上传到我的两个帐户(从%AppData%/ Google ...删除验证令牌)。

然而,客户给我们他的谷歌帐户,所以我们可以尝试一切都会为他工作,它不适合他的帐户。我们可以通过Web界面上传和下载文件,而不会有任何问题,但它不适用于我的应用程序。

我注意到的一个区别是我的客户的帐户没有谷歌电子邮件地址;它是[email protected],所以我用我的工作电子邮件地址创建了一个新的Google帐户,并对其进行了测试,并且在登录到Google云端硬盘后完美无误地工作。

问题就出现在最后几行:

FilesResource.InsertMediaUpload request = service.Files.Insert(body, stream, "text/plain"); 
request.Upload(); 

File file = request.ResponseBody; 
Console.WriteLine("File id: " + file.Id); 

在这一点上,request.ResponseBody是空,因此,如果我只是运行的代码,file.Id抛出一个ArgumentNullException。如果我跳入调试模式并检查环境,request.Progress(来自基类的私有属性)将其Status字段设置为“Failed”,并且Exception字段为ArgumentNullException,并且消息“参数不能为null参数名称:baseUri。“。

关于什么可能是错误的任何想法?

更新: 的代码来创建服务对象:

// Create the service. 
var service = new DriveService(new BaseClientService.Initializer() 
{ 
    HttpClientInitializer = credential, 
    ApplicationName = "Drive API Sample", 
}); 
+0

你可以发布你如何建立你的'service'对象? – 2014-09-25 16:43:50

+0

@TejasSharma当然,但它只是从教程中粘贴而没有更改。 – raven 2014-09-25 16:48:01

+0

你解决了这个问题吗? – 2014-12-03 09:18:36

回答

1

你有一个OAuth令牌没有正确的范围!

设置您范围设置为:

static string[] Scopes = { DriveService.Scope.Drive, DriveService.Scope.DriveFile };

在我的第一次尝试,我只用Drive,而不是DriveFile

+0

我无法测试这个,但在接近两年内成为第一个有希望的答案,我将接受它。谢谢! – raven 2016-03-03 19:31:36

+1

我正在使用一个例子,他们将信誉存储在一个文件中。您必须删除此文件并扩展范围。 [gist source](https://gist.github.com/DannySotzny/0ce64cebf39e9e420187) – 2016-03-18 14:30:24

0

我得到了同样的问题,终于让我找到了API未启用。 我在我的情况下回复原因,并希望它可以帮助你。

在我的情况下,我没有正确配置API设置。

当API配置不正确时引发ArgumentNullException的原因是报告问题。 https://code.google.com/p/google-api-dotnet-client/issues/detail?id=421

第一请求ResumableUpload.InitializeUpload遇到错误,但该错误消息包括“API未正确配置”不报告。

0

我解决了以下步骤完全相同的错误:

  1. 转到https://console.developers.google.com/(也有你的项目页面)
  2. - > API和验证 - >的API
  3. 点击“驱动器API”
  4. 激活它

那么它应该是标签下的‘启用API’,这是错误去东北。

+0

感谢您的分享。不幸的是,我已经启动了API ... – raven 2015-07-28 12:44:48

相关问题