Привет, ребята, так что я очень плохо знаком с областью Objective-C и еще новее со стадионом программирования интернет-соединений. Я пытаюсь работать с приложением для чтения RSS, и мне удалось настроить приличный NSXMLParser и тому подобное для анализа XML-каналов. Затем я хотел добавить возможность привязки к Google Reader. Я могу подключиться, аутентифицироваться и затем запросить со страницы, но на моем соединении возвращается прямой html-код сайта, а не XML-канал, как я надеялся ... Мой вопрос: как мне получить XML-данные из ленты от Google Reader? Вот мой код:
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
и вот что он распечатывает как полученные данные ... шучу, когда я их туда вставляю, переполнение стека анализирует его как HTML и отображает как таковое ...
Я знаю, что это не ошибка аутентификации, и я действительно озадачен тем, куда идти, чтобы получить каналы. Я получаю неправильный URL? Если я знаю, что это не синтаксический анализатор, так как он анализирует просто исходный канал cnet, а также любой другой файл прямо с их сайта.