使用 AFNetworking 2.0 下载 PDF
Posted
技术标签:
【中文标题】使用 AFNetworking 2.0 下载 PDF【英文标题】:PDF download with AFNetworking 2.0 【发布时间】:2015-02-23 12:32:47 【问题描述】:我正在做一个简单的请求,以便下载 PDF 文件,然后将其写入文件路径。 一些 PDF 被定向到失败块。 我得到的错误代码是 200,错误描述是“传输关闭,还有 2231939 字节要读取”。 下面是代码sn-p。
NSURLRequest *request = [NSURLRequest requestWithURL:url
cachePolicy:nil
timeoutInterval:120];
AFHTTPRequestOperation *downloadRequest = [[AFHTTPRequestOperation alloc] initWithRequest:request];
[downloadRequest setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject)
if (operation.response.statusCode != 200)
NSLog(@"Error code(S): %d",[operation.response statusCode]);
else
NSData *data = [[NSData alloc] initWithData:responseObject];
[data writeToFile:filePath atomically:YES];
NSLog(@"successful download to %@", filePath);
[data release];
[self fetchComplete:operation type:type];
failure:^(AFHTTPRequestOperation *operation, NSError *error)
NSLog(@"error code: %d",[operation.response statusCode]);
NSLog(@"error discreption: %@",[error localizedDescription]);
[self fetchFailed:operation];
];
【问题讨论】:
如果您的某些文件出现此问题,您的服务器可以重置连接吗?还有其他关于错误描述的信息吗? 查看***.com/questions/1759956/… 【参考方案1】:请试试这个例子。希望对您有所帮助!
// 第一步:创建带有下载文件完整路径的NSURL // 例如试试这个: NSString *fileUrl = @"https://pbs.twimg.com/profile_images/2331579964/jrqzn4q29vwy4mors75s_400x400.png"; // 并使用我们的 URL 创建 NSURLRequest 对象
NSURL *URL = [NSURL URLWithString:fileUrl];
NSURLRequest *request = [NSURLRequest requestWithURL:URL];
// 第二步:保存下载文件名 // 例如我们的文件名字符串等于'jrqzn4q29vwy4mors75s_400x400.png'
NSString *fileName = [URL lastPathComponent];
// 第 3 步:使用我们的请求创建 AFHTTPRequestOperation 对象
AFHTTPRequestOperation *downloadRequest = [[AFHTTPRequestOperation alloc] initWithRequest:request];
// 第 4 步:设置对来自服务器的应答和请求错误的处理
[downloadRequest setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject)
// here we must create NSData object with received data...
NSData *data = [[NSData alloc] initWithData:responseObject];
// ... and save this object as file
// Here 'pathToFile' must be path to directory 'Documents' on your device + filename, of course
[data writeToFile:pathToFile atomically:YES];
failure:^(AFHTTPRequestOperation *operation, NSError *error)
NSLog(@"file downloading error : %@", [error localizedDescription]);
];
// 第五步:开始异步下载
[downloadRequest start];
【讨论】:
以上是关于使用 AFNetworking 2.0 下载 PDF的主要内容,如果未能解决你的问题,请参考以下文章
AFNetworking 2.0,使用 CoreData (MagicalRecord) 保存下载状态