Skip to content

Instantly share code, notes, and snippets.

@okitsutakatomo
Created October 20, 2013 18:14
Show Gist options
  • Save okitsutakatomo/7073208 to your computer and use it in GitHub Desktop.
Save okitsutakatomo/7073208 to your computer and use it in GitHub Desktop.
AFNetworking2.0でContent-Type: plain/textのレスポンスを扱う方法 ref: http://qiita.com/okitsutakatomo/items/21b126fb1e3dae3bcb2f
#import "AFURLResponseSerialization.h"
@interface AFTextResponseSerializer : AFHTTPResponseSerializer
@end
#import "AFTextResponseSerializer.h"
@implementation AFTextResponseSerializer
+ (instancetype)serializer {
AFTextResponseSerializer *serializer = [[self alloc] init];
return serializer;
}
- (instancetype)init {
self = [super init];
if (!self) {
return nil;
}
self.acceptableContentTypes = [[NSSet alloc] initWithObjects:@"text/plain", nil];
return self;
}
#pragma mark - AFURLResponseSerialization
- (id)responseObjectForResponse:(NSHTTPURLResponse *)response
data:(NSData *)data
error:(NSError *__autoreleasing *)error
{
if (![self validateResponse:(NSHTTPURLResponse *)response data:data error:error]) {
if ([(NSError *)(*error) code] == NSURLErrorCannotDecodeContentData) {
return nil;
}
}
return [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
}
@end
Request failed: unacceptable content-type: text/plain
oauth_callback_confirmed=true&oauth_token=XXXXXXXXXX-XXXXXXXXXX&oauth_token_secret=XXXXXXXXXXX
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
// AFTextResponseSerializerをResponseSerializerに設定する。
AFTextResponseSerializer *textSerializer = [AFTextResponseSerializer serializer];
[manager setResponseSerializer:textSerializer];
[manager GET:baseUrl parameters:signedParams success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"Response: %@", responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Error: %@", error);
}];
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment