iPhone Dev Tips&Tricksトピックの続きで、ユーザーエージェントを「iPhone」に変更する方法についてお話します。
ユーザーエージェントに敏感なコンテンツを取得するには(特定の場合、XMLファイルを取得する必要があります)、次のコードを実行する必要があります。
NSURL *url = [[NSURL alloc] initWithString:@"http://domain.com/SomeXml.xml"];
NSHTTPURLResponse *response;
NSError *error;
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:url];
[request setValue:@"Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en)" forHTTPHeaderField:@"User-Agent"];
NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
ご覧のとおり、問題を解決するには、リクエスト(NSMutableURLRequest)に対してsetValue:forHTTPHeaderFieldを使用する必要があります。
NSXMLParserに結果のXMLを使用する必要があるため、特定のタスクではNSDataを使用しました。
NSXMLParser *xmlParser = [[NSXMLParser alloc] initWithData:data];
NSLog(@"XML is downloaded.");