-(void)touchesBegan:(NSSet
//[self getTest];
[self postTest];
}
-(void) getTest{
NSURLSession *session = [NSURLSession sharedSession];
NSURL *url = [NSURL URLWithString:@"http://120.25.226.186:32812/video?type=JSON"];
NSURLSessionDataTask *task = [session dataTaskWithURL:url completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSLog(@"%d",data.length);
NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:nil];
NSLog(@"%@",dict);
}];
[task resume];
}
-(void) postTest{
NSURLSession *session = [NSURLSession sharedSession];
//url = http://120.25.226.186:32812/login?username=123&pwd=123&type=JSON
NSURL *url = [NSURL URLWithString:@"http://120.25.226.186:32812/login"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
request.HTTPMethod=@"POST";
request.HTTPBody = [@"username=123&pwd=123&type=JSON" dataUsingEncoding:NSUTF8StringEncoding];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:nil];
NSLog(@"___%@",dict);
}];
[task resume];
}
- (void)downloadTask2
{
NSURLSessionConfiguration *cfg = [NSURLSessionConfiguration defaultSessionConfiguration];
// 1.得到session对象
NSURLSession \*session = \[NSURLSession sessionWithConfiguration:cfg delegate:self delegateQueue:\[NSOperationQueue mainQueue\]\];
// 2.创建一个下载task
NSURL \*url = \[NSURL URLWithString:@"http://localhost:8080/MJServer/resources/test.mp4"\];
NSURLSessionDownloadTask \*task = \[session downloadTaskWithURL:url\];
// 3.开始任务
\[task resume\];
// 如果给下载任务设置了completionHandler这个block,也实现了下载的代理方法,优先执行block
}
#pragma mark - NSURLSessionDownloadDelegate
/**
* 下载完毕后调用
*
* @param location 临时文件的路径(下载好的文件)
*/
(void)URLSession:(NSURLSession *)session downloadTask:(NSURLSessionDownloadTask *)downloadTask didFinishDownloadingToURL:(NSURL *)location
{
// location : 临时文件的路径(下载好的文件)
NSString *caches = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject];
// response.suggestedFilename : 建议使用的文件名,一般跟服务器端的文件名一致
NSString *file = [caches stringByAppendingPathComponent:downloadTask.response.suggestedFilename];
// 将临时文件剪切或者复制Caches文件夹
NSFileManager *mgr = [NSFileManager defaultManager];
// AtPath : 剪切前的文件路径
// ToPath : 剪切后的文件路径
[mgr moveItemAtPath:location.path toPath:file error:nil];
}
/**
* 恢复下载时调用
*/
}
/**
* 每当下载完(写完)一部分时就会调用(可能会被调用多次)
*
* @param bytesWritten 这次调用写了多少
* @param totalBytesWritten 累计写了多少长度到沙盒中了
* @param totalBytesExpectedToWrite 文件的总长度
*/
#pragma mark ------------------------------------------------------------------
/**
* 下载任务:不能看到下载进度
*/
(void)downloadTask
{
// 1.得到session对象
NSURLSession *session = [NSURLSession sharedSession];
// 2.创建一个下载task
NSURL *url = [NSURL URLWithString:@"http://localhost:8080/MJServer/resources/test.mp4"];
NSURLSessionDownloadTask *task = [session downloadTaskWithURL:url completionHandler:^(NSURL *location, NSURLResponse *response, NSError *error) {
// location : 临时文件的路径(下载好的文件)
NSString \*caches = \[NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject\];
// response.suggestedFilename : 建议使用的文件名,一般跟服务器端的文件名一致
NSString \*file = \[caches stringByAppendingPathComponent:response.suggestedFilename\];
// 将临时文件剪切或者复制Caches文件夹
NSFileManager \*mgr = \[NSFileManager defaultManager\];
// AtPath : 剪切前的文件路径
// ToPath : 剪切后的文件路径
\[mgr moveItemAtPath:location.path toPath:file error:nil\];
}];
// 3.开始任务
[task resume];
}
手机扫一扫
移动阅读更方便
你可能感兴趣的文章