【发布时间】:2014-05-07 04:26:30
【问题描述】:
我想从 url 下载图像并在响应对象中获取 NSData。
这是我设置操作的方式:
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
AFHTTPResponseSerializer *responseSerializer = [AFHTTPResponseSerializer serializer];
responseSerializer.acceptableContentTypes = [NSSet setWithObject:@"image/jpeg"];
manager.responseSerializer = responseSerializer;
AFHTTPRequestSerializer *requestSerializer = [AFHTTPRequestSerializer serializer];
[requestSerializer setValue:@"image/jpeg" forHTTPHeaderField:@"Accept"];
[requestSerializer setValue:@"image/jpeg" forHTTPHeaderField:@"Content-Type"];
manager.requestSerializer = requestSerializer;
[manager GET:url parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSData *data = responseObject;
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
}];
响应对象始终为 nil,url 正确,在浏览器中打开时显示图像,操作描述显示内容长度和内容类型(图像/jpeg),但响应对象似乎没有拾取它.
谢谢
答案:需要使用 operation.reponseData 代替 responseObject。
【问题讨论】:
-
@AdamEberbach 这不是重复的,不是一回事。
-
你访问失败块中的
operation.reponseData吗? -
在成功块中,没有错误发生。
-
你不反序列化它的原因是什么?
-
你可以试试SDWebImage,很容易做这样的操作。 github.com/rs/SDWebImage
标签: ios objective-c cocoa-touch asynchronous afnetworking-2