分析谷歌阅读器数据
嘿家伙,所以我非常新的Objective-C领域,甚至更新的编程网络连接体育场。我正在尝试使用RSS阅读器应用程序,并且已经能够设置一个像样的NSXMLParser等解析XML提要。然后我想添加绑定到Google阅读器的功能。我可以连接,验证,然后从页面请求,但它返回的是我的连接是直接的HTML代码的网站,而不是像我希望的饲料的XML ...我的问题是如何获得来自Google阅读器Feed的XML数据?这里是我的代码:分析谷歌阅读器数据
NSMutableURLRequest* request=[NSMutableURLRequest requestWithURL:URL];
[request setValue:[authCodes objectForKey:@"Auth"] forHTTPHeaderField:@"Auth"];
[request setValue:[authCodes objectForKey:@"SID"] forHTTPHeaderField:@"SID"];
//[request setHTTPMethod:@"GET"];
NSURLConnection* conn=[NSURLConnection connectionWithRequest:request delegate:self];
[conn start];
,然后将两个委托方法:
-(void)connection: (NSURLConnection *)connection didReceiveData:(NSData *)data
{
if (connectionData==nil) {
connectionData=[[NSMutableData alloc] init ];
}
NSLog(@"CONNECTION");
[connectionData appendData:data];
}
-(void) connectionDidFinishLoading:(NSURLConnection *)connection
{
NSLog(@"Connection Closed");
NSString *tempString = [[NSString alloc] initWithData:connectionData encoding:NSASCIIStringEncoding];
NSLog(@"The Data is Equal To: %@", tempString);
rssParser=[[NSXMLParser alloc] initWithData:connectionData];
[rssParser setDelegate:self];
[rssParser setShouldProcessNamespaces:YES];
[rssParser setShouldReportNamespacePrefixes:YES];
[rssParser setShouldResolveExternalEntities:NO];
[rssParser parse];
}
然后它的推移和解析,显然是给我一个错误说,它不知道如何解析它。 (错误代码76)
这是我试图连接到的网址: http://www.google.com/reader/view/feed/http%3A%2F%2Fnews.cnet.com%2F2547-1_3-0-20.xml
这里才是它打印出的数据收到......只是在开玩笑,当我把它放在那里Stack Overflow将其解析为HTML并将其显示为这样...
我知道这不是验证错误,并且确实难以确定从哪里获取提要。我从错误的URL获取?如果我知道它不是解析器,因为它解析了很好的cnet的原始提要,以及其它任何直接来自他们网站的提要。
NSURLConnection将向所提供的URL发送请求并下载存储在那里的任何数据。当您在网络浏览器中输入http://www.google.com/reader/view/feed/http://news.cnet.com/2547-1_3-0-20.xml时,您会看到它会将您带到Google阅读器网站(HTML),而不是您可以直接解析的XML Feed。
我不确定您从哪里生成您的网址。如果您知道XML提要本身的网址,则应直接使用该提要。看起来Google Reader网址的格式为http://www.google.com/reader/view/feed/[feed_url]。因此,如果您已有Google阅读器网址,则可以提取Feed网址并将其用于您的请求。
如果由于某种原因您绝对需要通过Google,您可以下载HTML并解析它以找到_INPUT_STREAM_ID。这包含从中下载XML的URL,然后您可以发出第二个请求。
对于那些寻求实现这一点,仍在寻找这里是我发现解决这个问题。
首先,你必须连接到谷歌,然后得到一个令牌,然后与网站交互google.com/reader/api/0/...
这里要说的是,我发现非常有帮助的网站:
http://code.google.com/p/pyrfeed/wiki/GoogleReaderAPI
它概述了关键字,以及如何与Google阅读器
好的互动,这是有道理的,谢谢。我想绑定到谷歌阅读器的原因是它是所有提要的缓存,并拉起旧的条目。那可能吗? – utahwithak 2011-04-02 15:56:06
不幸的是,我没有办法,我知道,访问缓存。 – 2011-04-02 16:20:27