博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS之NSURLConnection详解(2)
阅读量:5156 次
发布时间:2019-06-13

本文共 2091 字,大约阅读时间需要 6 分钟。

1 一、NSURLConnection 2 1.发送请求 3 1> 发送一个同步请求 4 + (NSData *)sendSynchronousRequest:(NSURLRequest *)request returningResponse:(NSURLResponse **)response error:(NSError **)error; 5  6 2> 发送一个异步请求(block) 7 + (void)sendAsynchronousRequest:(NSURLRequest*) request 8 queue:(NSOperationQueue*) queue 9 completionHandler:(void (^)(NSURLResponse* response, NSData* data, NSError* connectionError)) handler;10 11 3> 发送一个异步请求(代理方法)12 [NSURLConnection connectionWithRequest:request delegate:self];13 [[NSURLConnection alloc] initWithRequest:request delegate:self];14 [[NSURLConnection alloc] initWithRequest:request delegate:self startImmediately:YES];15 16 NSURLConnection *conn = [[NSURLConnection alloc] initWithRequest:request delegate:self startImmediately:NO];17 [conn start];18 19 2.文件下载(大文件下载)20 1> 实现方案 : 边下载边写入(写到沙盒的某个文件中)21 2> 具体实现步骤22 a. 在接收到服务器的响应时23 // 创建一个空文件 - NSFileManager24 [mgr createFileAtPath:self.destPath contents:nil attributes:nil];25 26 // 创建一个跟空文件相关联的句柄对象 - NSFileHandle27 [NSFileHandle fileHandleForWritingAtPath:self.destPath];28 29 b. 在接收到服务器的数据时30 // 利用句柄对象将服务器返回的数据写到文件的末尾31 // 移动到文件的尾部32 [self.writeHandle seekToEndOfFile];33 // 从当前移动的位置(文件尾部)开始写入数据34 [self.writeHandle writeData:data];35 36 c. 在接收完服务器返回的数据时37 // 关闭句柄38 [self.writeHandle closeFile];39 self.writeHandle = nil;40 41 3.断点下载42 1> 关键技术点43 * 设置请求头Range, 告诉服务器下载哪一段数据44 45 4.文件上传46 1> 明确47 * 只能用POST请求48 * 请求参数都在请求体(文件参数\非文件类型的普通参数)49 50 2> 实现步骤51 a. 拼接请求体(文件参数\非文件类型的普通参数)52 * 文件参数53 // 参数的开始标记(分割线)54 --nihao\r\n55 // 参数描述(参数名...)56 Content-Disposition: form-data; name="参数名"; filename="文件名"\r\n57 // 文件类型58 Content-Type: 文件的类型MIMEType\r\n59 // 文件的二进制数据(参数值)60 \r\n61 文件的二进制数据62 \r\n63 64 * 非文件参数(普通参数)65 // 参数的开始标记(分割线)66 --nihao\r\n67 // 参数描述(参数名...)68 Content-Disposition: form-data; name="参数名"\r\n69 // 参数值70 \r\n71 参数值72 \r\n73 74 * 所有参数结束的标记75 --nihao--\r\n76 77 b. 设置请求头78 * 请求体的长度79 Content-Length : 请求体的长度(字节长度)80 81 * 请求数据的类型82 Content-Type :83 // 普通POST请求: application/x-www-form-urlencoded84 // 上传文件的POST请求 : multipart/form-data; boundary=--nihao

 

转载于:https://www.cnblogs.com/changxs/p/4048434.html

你可能感兴趣的文章
Sharepoint 2013搜索服务配置总结(实战)
查看>>
博客盈利请先考虑这七点
查看>>
使用 XMLBeans 进行编程
查看>>
写接口请求类型为get或post的时,参数定义的几种方式,如何用注解(原创)--雷锋...
查看>>
【OpenJ_Bailian - 2287】Tian Ji -- The Horse Racing (贪心)
查看>>
Java网络编程--socket服务器端与客户端讲解
查看>>
List_统计输入数值的各种值
查看>>
学习笔记-KMP算法
查看>>
Timer-triggered memory-to-memory DMA transfer demonstrator
查看>>
跨域问题整理
查看>>
[Linux]文件浏览
查看>>
64位主机64位oracle下装32位客户端ODAC(NFPACS版)
查看>>
获取国内随机IP的函数
查看>>
今天第一次写博客
查看>>
江城子·己亥年戊辰月丁丑日话凄凉
查看>>
IP V4 和 IP V6 初识
查看>>
Spring Mvc模式下Jquery Ajax 与后台交互操作
查看>>
(转)matlab练习程序(HOG方向梯度直方图)
查看>>
『Raid 平面最近点对』
查看>>
【ADO.NET基础-数据加密】第一篇(加密解密篇)
查看>>