C# 谷歌联系人API的部分响应

C# 谷歌联系人API的部分响应,c#,google-api,google-contacts-api,C#,Google Api,Google Contacts Api,对于我开发的其中一个应用程序,报告以下错误的用户数量非常有限: [10/1/2019 8:34:47 PM |调试]内部异常类型:System.FormatException [2019年10月1日8:34:47 PM |调试]内部异常:未将字符串识别为有效的日期时间。 [2019年10月1日8:34:47 PM |调试]内部源代码:mscorlib [2019年10月1日8:34:47 PM | Debug]内部堆栈跟踪:在System.DateTimeParse.Parse(字符串s,Dat

对于我开发的其中一个应用程序,报告以下错误的用户数量非常有限:

[10/1/2019 8:34:47 PM |调试]内部异常类型:System.FormatException
[2019年10月1日8:34:47 PM |调试]内部异常:未将字符串识别为有效的日期时间。
[2019年10月1日8:34:47 PM |调试]内部源代码:mscorlib
[2019年10月1日8:34:47 PM | Debug]内部堆栈跟踪:在System.DateTimeParse.Parse(字符串s,DateTimeFormatInfo dtfi,DateTimeStyles样式)
位于Google.GData.Extensions.When.CreateInstance(XmlNode节点,AtomFeedParser)
位于Google.GData.Extensions.SimpleContainer.ProcessChildNodes(XmlNode节点,AtomFeedParser)
位于Google.GData.Extensions.SimpleContainer.CreateInstance(XmlNode节点,AtomFeedParser)
位于Google.GData.Client.AtomEntry.Parse(ExtensionElementEventArgs e,AtomFeedParser)
在Google.GData.Client.ExtensionElementEventHandler.Invoke(对象发送方,ExtensionElementEventArgs e)
位于Google.GData.Client.AtomFeed.OnNewExtensionElement(对象发送器,ExtensionElementEventArgs e)
位于Google.GData.Client.BaseFeedParser.OnNewExtensionElement(XmlNode节点,AtomBase baseObject)
位于Google.GData.Client.BaseFeedParser.OnNewExtensionElement(XmlReader阅读器,AtomBase baseObject)
位于Google.GData.Client.AtomFeedParser.ParseExtensionElements(XmlReader,AtomBase baseObject)
位于Google.GData.Client.AtomFeedParser.ParseEntry(XmlReader)
位于Google.GData.Client.AtomFeedParser.ParseSource(XmlReader阅读器,AtomSource源代码)
位于Google.GData.Client.AtomFeedParser.ParseFeed(XmlReader阅读器,AtomFeed提要)
在Google.GData.Client.AtomFeedParser.Parse(streamInput,AtomFeed提要)
[2019年10月1日8:34:47 PM | Debug]异常类型:Google.GData.Client.ClientFeedException
[2019年10月1日8:34:47 PM |调试]异常:解析失败
[2019年10月1日8:34:47 PM | Debug]来源:Google.GData.Client
[2019年10月1日8:34:47 PM | Debug]堆栈跟踪:位于Google.GData.Client.AtomFeedParser.Parse(streamInput,AtomFeed提要)
在Google.GData.Client.Service.CreateAndParseFeed(Stream-inputStream,Uri-uriToUse)
在Google.GData.Client.Service.Query(FeedQuery)
在Google.GData.Client.Feed上
在Google.GData.Client.Feed
1.d\u 0.MoveNext()

可能其中一个联系人的生日不正确,或者其他字段的日期无效。有趣的是,我无法复制这种情况,也就是说,尽管进行了多次尝试,但我无法建立这种联系

现在,我尝试实现一些调试例程,并检查哪些联系人解析失败。我试图使用GoogleContactsAPI实现部分get,但我无法找到查询字符串的正确组合。为了进行测试,我使用OAuth Playerd,为了进行测试,我尝试只检索Id字段。以下是我尝试过的:


还有更多。。。。我总是收到HTTP/1.1400错误请求。使用Google Contacts API仅获取选定联系人字段的正确方法是什么?

您的代码需要xml响应。当发生错误时,您得到的不是正常的200 OK http响应,而是一个错误(状态400),并且没有返回xny xml。响应中有趣的部分是http 1.1。Http 1.0是流模式,Http 1.1是块模式。最好的调试方法是使用类似fiddler wireshark的嗅探器,比较好系统和坏系统上的第一个请求。检查标题以查看它们是否相同。默认标头在不同的计算机上可能不同。您可以使用以下命令强制http 1.0:HttpWebRequest=(HttpWebRequest)HttpWebRequest.Create(“URL”);request.ProtocolVersion=HttpVersion.Version10;我能够在OAuth游乐场中看到完整的回复,例如对于请求,我得到的回复如下:`{“error”:{“status”:“INVALID_ARGUMENT”,“code”:400,“details”:[{“fieldinvalications”:[{“field”:“entry.gd:id”,“description”:展开'fields'参数时出错。找不到路径'entry.gd:id'。“}]}]}}`的匹配字段。我找到了以下链接:为什么使用“defaule”而不是“default”“。您正在使用瑞典语网页吗?该错误可能与网页上使用的语言有关。看起来“条目”应该是一个{ContactId},但不确定其格式。它不适用于“default”。