AFNetworking3.1.0源码分析(八)AFHTTPRequestSerializer 之AFStreamingMultipartFormData下

本章接着上章继续讲解AFStreamingMultipartFormData设置上传文件(文本,图像,视频)时对请求的设置。

1:首先说下在iOS网络请求中以POST/PUT形式发送请求是,设置请求体的两种形式:HTTPBody 和 HTTPBodyStream

HTTPBody:适用于普通的post/put请求(大部分接口请求都使用这种)因为发送的请求体占用的内存很少。

HTTPBodyStream(实际上是NSInputStream对象:)适用于发送大文件(文本,图像,视频)等,因为其占用内存比较多,使用读写流的方式,节约内存,控制内存的使用率。


2:在读写数据流的过程中使用到两个类:NSInputStream 和 NSOutputStream:

NSOutputStream :写文件,它是要将已存在的内存(buffer)里的数据写入文件
NSInputStream :读文件,所以要记住它是要将文件的内容读到内存(自己声明的一段buffer)里


3:AFNetworking的实现过程:

3.1:初始化AFStreamingMultipartFormData

- (instancetype)initWithURLRequest:(NSMutableURLRequest *)urlRequest
                    stringEncoding:(NSStringEncoding)encoding
{
    self = [super init];
    if (!self) {
        return nil;
    }
    //持有外部创建的NSMutableURLRequest
    self.request = urlRequest;
    //设置字符串转换成NSdata的编码(使用utf8),在创建httpbodystream的每一个分段(AFHTTPBodyPart)的时候使用到此编
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值