CocoaでAWSにアクセスする
公開日:
:
最終更新日:2013/11/10
cocoa
こんな感じ。後でクラスにでもしよう。
#import <Cocoa/Cocoa.h>
int main(){
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
NSString *artist = @"浜崎";
NSString *AWSAccessKeyId = @"hogehoge";
NSString *urlString = [NSString stringWithFormat:@"http://webservices.amazon.co.jp/onca/xml?Service=AWSECommerceService&AWSAccessKeyId=%@&Operation=ItemSearch&SearchIndex=Music&ResponseGroup=Images&Artist=%@", AWSAccessKeyId, artist];
NSString *url = [NSURL URLWithString:[urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
NSError *error;
NSXMLDocument *xmlDoc = [[NSXMLDocument alloc] initWithContentsOfURL:url options:(NSXMLNodePreserveWhitespace | NSXMLNodePreserveCDATA) error:&error];
if(nil == xmlDoc) {
NSLog(@"error");
return 1;
}
NSXMLNode * node = [xmlDoc rootElement];
while((node = [node nextNode])) {
if([[node name] isEqualToString:@"ImageSet"]) {
NSEnumerator *childrenEnumerator = [[node children] objectEnumerator];
NSXMLNode *childNode;
while((childNode = [childrenEnumerator nextObject])) {
NSMutableDictionary *dictionary = [NSMutableDictionary dictionaryWithCapacity:3];
NSEnumerator *childrenEnumerator = [[childNode children] objectEnumerator];
NSXMLNode *grandChildNode;
NSEnumerator *grandChildrenEnumerator = [[childNode children] objectEnumerator];
while((grandChildNode = [grandChildrenEnumerator nextObject])) {
[dictionary setValue:[grandChildNode stringValue] forKey:[grandChildNode name]];
}
NSLog(@"dictionary = %@", dictionary);
}
}
}
[pool release];
return 0;
}