Google Drive API v3更改列表请求使用.NET客户端返回400错误请求

时间:2016-03-17 21:14:14

标签: .net google-drive-api

我们正在创建一个.NET应用程序来捕获Google Drive更改,我们正在使用.NET客户端来使用Google Drive V3 API。下面的代码显示了我们如何调用Changes.List方法来返回驱动器更改列表。这段代码工作了几天,但现在每次只返回错误代码400(错误请求)。还有其他人看到了问题吗?

        var credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
            Secrets,
            Scopes,
            "user",
            CancellationToken.None,
            dataStore).Result;

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

        while (pageToken != null)
        {
            var changeListRequest = service.Changes.List(pageToken);
            changeListRequest.Fields = "*";

            changeList = changeListRequest.Execute();

            pageToken = changeList.NextPageToken;
        }

changeListRequest.Execute()调用发生错误。

2 个答案:

答案 0 :(得分:2)

好的,所以我发现问题就在于:

changeListRequest.Fields = "*". 

而不是星号,我必须指定实际的字段:

changeListRequest.Fields = "changes,kind,newStartPageToken,nextPageToken";

现在似乎工作正常。事情是我的旧代码工作正常,直到几天前!事实上,我复制了使用星号的谷歌.NET示例中的代码。我很高兴这不是生产代码。

答案 1 :(得分:0)

根据此Handling API Errors文档,400错误请求错误意味着您发送到网站服务器的请求(通常是简单的请求加载网页)在某种程度上是不正确或已损坏,因此服务器无法理解它。

此代码工作了几天,但现在每次只返回错误代码400(错误请求)。

  • 清除浏览器的Cookie和缓存,尤其是您使用Google服务收到错误请求错误。许多网站在其阅读的cookie损坏或过旧时报告了400错误。

您还可以检查此问题Getting 200 OK abd 400 bad request on the same request from Google Drive REST API