NSURLSession 请求

参考网站:http://ningandjiao.iteye.com/blog/2010753

http://www.cocoachina.com/industry/20131106/7304.html

代码部分:

- (void)viewDidLoad {

[super viewDidLoad];

//-----------不能监测下载进度的方法------------

//    //创建NSURLSeesion

//    NSURLSession *session = [NSURLSession sharedSession];//是一个单例

//    //在session中每一个请求都是一个任务

////    NSURLSessionDataTask //做get和post请求的

////    NSURLSessionDownloadTask//用于下载

////    NSURLSessionUploadTask//用于上传

//    NSURL *url = [NSURL URLWithString:@"http://nmo.ouj.yymommy.com/185cd4217a3a4799/1441088092/mp3_190_67/30/ac/30e767b8bf61d844ed628ff084b067ac.mp3?s=t"];

//    //创建任务

//    NSURLSessionDownloadTask *task = [session downloadTaskWithURL:url completionHandler:^(NSURL *location, NSURLResponse *response, NSError *error) {

//        NSLog(@"%@",location.path);//NSURL *location为默认路径 location.path转换成

//        //session默认将文件下载到temp目录下 下载完会默认移除,所以想要永久保存要将它移植到caches文件夹下

//        NSString *path = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES)lastObject];

//        NSString *string = [path stringByAppendingPathComponent:@"text1.mp3"];

//        //创建文件管理器 移植文件

//        NSFileManager *manager = [NSFileManager defaultManager];

////        [manager moveItemAtPath:location.path toPath:string error:nil];

//        //也可以用copy的方法

//        [manager copyItemAtPath:location.path toPath:string error:nil];

//

//

//    }];

//    //开启任务

//    [task resume];

//----------------------注销线----------------

//-----------------可以监测下载进度的方法----------

//创建默认配置

NSURLSessionConfiguration *cfn = [NSURLSessionConfiguration defaultSessionConfiguration];

//创建下载任务

NSURLSession *session = [NSURLSession sessionWithConfiguration:cfn  delegate:self delegateQueue:[NSOperationQueue mainQueue]];//1参 控制器 2参 download代理

//开启下载任务 (如果调用的downloadTaskWithURL带block 那么代理方法不会走)

NSURL *url = [NSURL URLWithString:@"http://nmo.ouj.yymommy.com/185cd4217a3a4799/1441088092/mp3_190_67/30/ac/30e767b8bf61d844ed628ff084b067ac.mp3?s=t"];

NSURLSessionDownloadTask *task = [session downloadTaskWithURL:url];

//开启任务

[task resume];

}

#pragma mark --代理方法

//下载完成会调用的方法

- (void)URLSession:(NSURLSession *)session downloadTask:(NSURLSessionDownloadTask *)downloadTask

didFinishDownloadingToURL:(NSURL *)location

{

}

//每下载一段数据就会调用以下方法

//bytesWritten 这个参数表示这次下载了多少数据

//totalBytesWritten 下载的累计总数据长度

//totalBytesExpectedToWrite 文件总长度

- (void)URLSession:(NSURLSession *)session downloadTask:(NSURLSessionDownloadTask *)downloadTask

didWriteData:(int64_t)bytesWritten

totalBytesWritten:(int64_t)totalBytesWritten

totalBytesExpectedToWrite:(int64_t)totalBytesExpectedToWrite

{

}

//断点续传

- (void)URLSession:(NSURLSession *)session downloadTask:(NSURLSessionDownloadTask *)downloadTask

didResumeAtOffset:(int64_t)fileOffset

expectedTotalBytes:(int64_t)expectedTotalBytes

{

}

时间: 2024-10-13 16:15:32

NSURLSession 请求的相关文章

NSURLSession请求封装加HUD加载框

在.h里面的方法 定义单例类 typedef void(^SuccessBlock) (id block); typedef void(^FailureBlock) (id block); @interface NetRequest : NSObject <NSURLSessionDelegate> + (instancetype)shareInstance; - (void)requestWithURL:(NSString *)url params:(NSDictionary *)param

NSURLSession请求网络-01-网络

/* 网络请求的流程: 1.构造NSURL连接地址 2.构造NSURLRequest请求对象,包含请求头和请求体信息. 3.构造NSURLSessionConfiguration,可选 4.构造NSURLSession会话对象 5.创建请求任务 6.发送网络请求 */ 1 // 2 // ViewController.m 3 // 01-NSURLSession请求网络 4 // 5 // 6 7 #import "ViewController.h" 8 9 @interface Vi

关于Xcode 7中 HTTP网络请求失败的解决办法

最近在用NSURLSession请求网络数据时,会出现如下错误, 查询后得知iOS9之后,新特性App Transport Security (ATS)要求App内访问的网络必须使用HTTPS协议,解决方法如下:

iOS网络2——NSURLSession

原文在此 一.整体介绍 NSURLSession在2013年随着iOS7的发布一起面世,苹果对它的定位是作为NSURLConnection的替代者,然后逐步将NSURLConnection退出历史舞台.现在使用最广泛的第三方网络框架:AFNetworking.SDWebImage等等都使用了NSURLSession.作为iOS开发人员,应该紧随苹果的步伐,不断的学习,无论是软件的更新.系统的更新.API的更新,而不能墨守成规. Session翻译为中文意思是会话,我们知道,在七层网络协议中有物理

iOS开发中遇到细节问题总结(持续更新...)

1.MRC 和 ARC 下的可变数组的懒加载 MRC 和 ARC 下可变数组的懒加载,对数组的初始化方式不同: ARC 下: 1 - (NSMutableArray *)lazyMutableArray { 2 if (!_lazyMutableArray) { 3 _lazyMutableArray = [NSMutableArray array]; 4 } 5 return _lazyMutableArray; 6 } MRC 下: 1 - (NSMutableArray *)lazyMut

检查电脑链接的网络是否支持ipv6

测试方法一:在浏览器地址栏输入网址"http://test-ipv6.com/",在页面会给出您的ipv6网络测试结果 测试方法二:在浏览器地址栏输入网址"http://ipv6.jmu.edu.cn/",如页面右下方的小老虎一直在跳舞,那么恭喜啦,您的ipv6没问题. 测试方法三:在浏览器地址栏输入网址"http://ipv6test.google.com/",如出现下面的界面,那么恭喜您,您的网络支持ipv6. 网上说阿里云主机不支持ipv6

iOS开发网络篇—发送GET和POST请求(使用NSURLSession)

iOS开发网络篇—发送GET和POST请求(使用NSURLSession) 说明: 1)该文主要介绍如何使用NSURLSession来发送GET请求和POST请求 2)本文将不再讲解NSURLConnection的使用,如有需要了解NSURLConnection如何发送请求. 详细信息,请参考:http://www.cnblogs.com/wendingding/p/3813706.html 3)本文示例代码发送的请求均为http请求,已经对info.plist文件进行配置. 如何配置,请参考:

第八篇、封装NSURLSession网络请求框架

主要功能介绍: 1.GET请求操作 2.POST请求操作 1.处理params参数(例如拼接成:usename="123"&password="123") #import <Foundation/Foundation.h> @interface LYURLRequestSerialization : NSObject +(NSString *)LYQueryStringFromParameters:(NSDictionary *)paramete

网络编程(一) 利用NSURLSession发送GET POST请求

Xcode 7.0后,http链接不能直接访问(https可以),需要在Info.plist增加下面一项才能正确访问. 使用NSURLSession进行网络请求的流程: 1.构造NSURL 2.构造NSURLRequest请求对象 3.构造NSURLSession会话对象 4.创建网络请求任务:dataTask, downloadTask, uploadTask 5.发送网络请求 1.GET 请求(GET一般用于获取/查询资源信息) - (void)HTTPGET { //1.构造NSURL N