[code language=”objc”]
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
manager.responseSerializer = [AFXMLParserResponseSerializer serializer];
manager.responseSerializer.acceptableContentTypes = [NSSet setWithObject:@"application/rss+xml"];
[manager GET:@"*****************"
parameters:nil
success:^(NSURLSessionDataTask *task, id responseObject) {
NSLog(@"responseObject = [%@]", responseObject);
} failure:^(NSURLSessionDataTask *task, NSError *error) {
NSLog(@"Error = [%@]", error);
}];
[/code]
このようなコードを実行した結果、
[bash gutter=”0″]
Error = [Error Domain=com.alamofire.error.serialization.response Code=-1016 "Request failed: unacceptable content-type: text/xml" UserInfo=0x14e40ff0 {NSErrorFailingURLKey=*****************, com.alamofire.serialization.response.error.response=<NSHTTPURLResponse: 0x14e801f0> { URL: ***************** } { status code: 200, headers {
Connection = close;
"Content-Type" = "text/xml; charset=utf-8";
Date = "Wed, 25 Jun 2014 07:06:33 GMT";
Server = Apache;
"Transfer-Encoding" = Identity;
} }, NSLocalizedDescription=Request failed: unacceptable content-type: text/xml}]
[/bash]
このようなエラーが返ってきました(*****************はURLですが、ここでは伏字にしてあります)。このエラーは、acceptableContentTypesで指定したコンテンツタイプとレスポンス側のコンテンツタイプが一致していないのが原因です。エラーメッセージをよく見ましょう。
[adsense]
[bash gutter=”0″]
"Content-Type" = "text/xml; charset=utf-8";
[/bash]
コンテンツタイプは”text/xmlのようです。
[code language=”objc” highlight=”3″]
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
manager.responseSerializer = [AFXMLParserResponseSerializer serializer];
manager.responseSerializer.acceptableContentTypes = [NSSet setWithObject:@"text/xml"];
[/code]
このように修正すればOKです。