やあみんな、だから私はObjective-Cの領域に非常に新しく、インターネット接続のプログラミングのスタジアムにさらに新しいです。私はRSSリーダーアプリで作業しようとしていますが、XMLフィードを解析するために適切なNSXMLParserなどを設定することができました。次に、Googleリーダーに接続する機能を追加したいと思いました。接続して認証し、ページからリクエストすることはできますが、接続時に返されるのはサイトのまっすぐな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];
そして、2つのデリゲートメソッド:
-(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
そして、これが受信したデータとして出力されるものです...そこにデータを入れると冗談です。StackOverflowはそれをHTMLとして解析し、そのように表示しました...
私はそれが認証エラーではないことを知っており、フィードを取得するためにどこに行くべきかについて本当に困惑しています。間違ったURLから取得していますか?私が知っているなら、それはパーサーではないので、cnetの元のフィードだけでなく、他のサイトからの直接のフィードも解析します。