嘿伙计们,所以我对 Objective-C 领域非常陌生,甚至对互联网连接编程领域也很陌生。我正在尝试开发一个 RSS 阅读器应用程序,并且已经能够设置一个像样的 NSXMLParser 等来解析 XML 提要。然后我想添加绑定到 Google Reader 的功能。我可以连接、验证然后从页面请求,但它在我的连接上返回的是网站的直接 html 代码,而不是我希望的提要的 XML ......我的问题是我如何获得来自谷歌阅读器提要的 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)
这是我要连接的 URL: http ://www.google.com/reader/view/feed/http%3A%2F%2Fnews.cnet.com%2F2547-1_3-0-20.xml
这就是它在收到数据时打印出来的内容......当我把它放在那里时开个玩笑 Stack Overflow 将它解析为 HTML 并显示它......
我知道这不是身份验证错误,我真的不知道从哪里获取提要。我是从错误的 URL 获取的吗?如果我知道它不是解析器,因为它可以解析 cnet 的原始提要,以及来自他们网站的任何其他内容。