我有一个PDF下载位置,格式如下:
https://www.example.com/apps/user_name?txtFile=directory_1%2Fmy_pdf_file.pdf
为了下载这个提到的PDF(my_pdf_file.pdf),我需要传递哪个NSURL,例如NSURLSessionDownloadTask?
更新: 这个问题似乎与url重定向到另一个位置有关,这在一开始就是未知的。
更多信息:
我的下载代码如下:
NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];
AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:configuration];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
NSURLSessionDownloadTask *downloadTask = [manager downloadTaskWithRequest:request progress:nil destination:^NSURL *(NSURL *targetPath, NSURLResponse *response) {
NSURL *documentsDirectoryURL = [[NSFileManager defaultManager] URLForDirectory:NSDocumentDirectory inDomain:NSUserDomainMask appropriateForURL:nil create:NO error:nil];
return [documentsDirectoryURL URLByAppendingPathComponent:[response suggestedFilename]];
} completionHandler:^(NSURLResponse *response, NSURL *filePath, NSError *error) {
if (!error) {
DDLogInfo(@"File downloaded to: %@", filePath);
}
}];
[downloadTask resume];
答案 0 :(得分:0)
要使用NSURLSession
下载PDF文件,请执行以下操作:
NSString *londonWeatherUrl = @"https://www.example.com/apps/user_name?txtFile=directory_1%2Fmy_pdf_file.pdf";
首先是使用NSURLConnection时如何进行此调用:
NSURLRequest *request = [NSURLRequest requestWithURL:
[NSURL URLWithString:londonWeatherUrl]];
[NSURLConnection sendAsynchronousRequest:request
queue:[NSOperationQueue mainQueue]
completionHandler:^(NSURLResponse *response,
NSData *data,
NSError *connectionError) {
// handle response
}];
现在让我们使用NSURLSession。请注意,这是使用NSURLSession进行快速调用的最简单方法。在本教程的后面,您将看到如何配置会话和设置委托等其他功能。
NSURLSession *session = [NSURLSession sharedSession];
[[session dataTaskWithURL:[NSURL URLWithString:londonWeatherUrl]
completionHandler:^(NSData *data,
NSURLResponse *response,
NSError *error) {
// handle response
}] resume];