Google Data API 体验
来源:互联网 发布:商家怎么报名淘宝试用 编辑:程序博客网 时间:2024/04/29 22:19
用了live writer之后,很想要一个同步blog的功能,可惜没实现,还要一个一个的提交。决定自己动手,于是看了下 Google 提供的 Blogger 的 Google Data API,比较了几个版本的实现,最终决定使用.Net版本的,Java的就是看着不爽(嘿嘿)。
下载了安装包,编译源码和示例工程,一切正常。运行,异常(汗……)。
自己跟了一下代码,几经周折,才发现原来是访问不到。于是改成使用代理,搜了半天,最终还是根据源码的实现加了进去:
GDataRequestFactory requestFactory = (GDataRequestFactory)service.RequestFactory;
WebProxy torProxy = new WebProxy("127.0.0.1", 8118);
torProxy.Credentials = CredentialCache.DefaultCredentials;
torProxy.UseDefaultCredentials = true;
requestFactory.Proxy = torProxy;
原以为应该没问题,结果运行,还是异常,
---------------------------
断言失败: Abort=Quit、Retry=Debug、Ignore=Continue
---------------------------
did not find an auth token in QueryAuthTokenat Tracing.Assert(Boolean condition, String msg) D:/Program Files/Google/Google Data API SDK/Sources/Library/core/tracing.cs(209)
at GDataGAuthRequest.QueryAuthToken(GDataCredentials gc) D:/Program Files/Google/Google Data API SDK/Sources/Library/core/gauthrequest.cs(606)
at GDataGAuthRequest.EnsureCredentials() D:/Program Files/Google/Google Data API SDK/Sources/Library/core/gauthrequest.cs(422)
at GDataRequest.EnsureWebRequest() D:/Program Files/Google/Google Data API SDK/Sources/Library/core/request.cs(648)
at GDataGAuthRequest.EnsureWebRequest() D:/Program Files/Google/Google Data API SDK/Sources/Library/core/gauthrequest.cs(456)
at GDataRequest.Execute() D:/Program Files/Google/Google Data API SDK/Sources/Library/core/request.cs(696)
at GDataGAuthRequest.Execute(Int32 retryCounter) D:/Program Files/Google/Google Data API SDK/Sources/Library/core/gauthrequest.cs(701)
at GDataGAuthRequest.Execute() D:/Program Files/Google/Google Data API SDK/Sources/Library/core/gauthrequest.cs(684)
at Service.Query(Uri queryUri, DateTime ifModifiedSince, String etag, Int64& contentLength) D:/Program Files/Google/Google Data API SDK/Sources/Library/core/service.cs(403)
at Service.Query(Uri queryUri, DateTime ifModifiedSince) D:/Program Files/Google/Google Data API SDK/Sources/Library/core/service.cs(347)
at Service.Query(FeedQuery feedQuery) D:/Program Files/Google/Google Data API SDK/Sources/Library/core/service.cs(478)
at BloggerService.Query(BloggerQuery feedQuery) D:/Program Files/Google/Google Data API SDK/Sources/Library/blogger/bloggerservice.cs(50)
at Blogger.RefreshFeedList() D:/Program Files/Google/Google Data API SDK/Sources/Samples/blogger/blogger.cs(244)
at Blogger.Go_Click(Object sender, EventArgs e) D:/Program Files/Google/Google Data API SDK/Sources/Samples/blogger/blogger.cs(204)
at Control.OnClick(EventArgs e)
at Button.OnClick(EventArgs e)
at Button.OnMouseUp(MouseEventArgs mevent)
at Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at Control.WndProc(Message& m)
at ButtonBase.WndProc(Message& m)
at Button.WndProc(Message& m)
at ControlNativeWindow.OnMessage(Message& m)
at ControlNativeWindow.WndProc(Message& m)
at NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
at UnsafeNativeMethods.DispatchMessageW(MSG& msg)
at ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData)
at ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
at ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
at Application.Run(Form mainForm)
at Blogger.Main() D:/Program Files/Google/Google Data API SDK/Sources/Samples/blogger/blogger.cs(56)
at AppDomain._nExecuteAssembly(Assembly assembly, String[] args)
at AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
at HostProc.RunUsersAssembly()
at ThreadHelper.ThreadStart_Context(Object state)
at ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at ThreadHelper.ThreadStart()
---------------------------
终止(A) 重试(R) 忽略(I)
---------------------------
难道权限的输入有问题,几番查找资料,仔细核对文档,比较结果还是没问题。用户名,密码都是正确的。看来只有仔细跟代码了,仔细调试下,终于找到了异常位置 :
public static class GoogleAuthentication
{
…
internal string QueryAuthToken(GDataCredentials gc)
{
…
Stream requestStream = authRequest.GetRequestStream() ;
协议冲突,难道用了非blogger的协议,再看,恩 Service service = new Service("blogger", "BloggerSampleApp"); 直接换 BloggerService service = new BloggerService("BloggerSampleApp"); 还是不行。分析了半天,忽然想到用Live Writer的时候也有问题,这么说可能是http协议头冲突造成的。于是增加 config 文件
再运行,一切ok。终于解脱了。O(∩_∩)O哈哈~
- Google Data API 体验
- Google Data API 使用体验 (1)-- Calendar篇
- Google Health Data API
- Google Maps API 初体验
- Google 输入法api自定义体验
- Google Picasa API初体验
- google与百度地图api体验笔记
- Google Maps Android API v2初体验
- Google Book Search APIs-----Data API
- Google Data API中的Atom接口定义
- Google Maps Data API-java开发指南
- Continuity of Care Record google Health Data API
- 【Android】Google Contacts Data API : Protocol(中文版)
- Data API
- Google 用户体验【用户体验】
- Using Google Visualization API with own data soure(转http://www.jansipke.nl/using-google-visualization-api-with-own-data-source)
- google api
- Google API:
- 利用iText 给PDF文件添加附件
- 一位软件工程师的6年总结
- EVC打开bmp文件
- 君子,有所为,有所不为。
- 微软软件测试的工作性质
- Google Data API 体验
- 比较完整路径符号对应解释列表
- 菜猪编程开发学习日记第一回
- DIV提示框
- 换分
- ant 脚本编译
- tcpdump抓包
- Hibernate重要对象的详解
- 谁让我们无功而返(一个案例分析)