我们正在创建一个.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()调用发生错误。
答案 0 :(得分:2)
好的,所以我发现问题就在于:
changeListRequest.Fields = "*".
而不是星号,我必须指定实际的字段:
changeListRequest.Fields = "changes,kind,newStartPageToken,nextPageToken";
现在似乎工作正常。事情是我的旧代码工作正常,直到几天前!事实上,我复制了使用星号的谷歌.NET示例中的代码。我很高兴这不是生产代码。
答案 1 :(得分:0)
根据此Handling API Errors文档,400错误请求错误意味着您发送到网站服务器的请求(通常是简单的请求加载网页)在某种程度上是不正确或已损坏,因此服务器无法理解它。
此代码工作了几天,但现在每次只返回错误代码400(错误请求)。
您还可以检查此问题Getting 200 OK abd 400 bad request on the same request from Google Drive REST API。