美文网首页ios 参考部分
AFMultipartFormData协议说明

AFMultipartFormData协议说明

作者: _阿南_ | 来源:发表于2017-07-12 17:36 被阅读767次

    声明处:AFURLRequestSerialization.h


    概述

    AFMultipartFormData协议定义的方法是为AFHTTPRequestSerializer的- multipartFormRequestWithMethod:URLString:parameters:constructingBodyWithBlock方法中块的参数提供的。

    任务

    • - appendPartWithFileURL:name:error: 必须实现的方法
    • - appendPartWithFileURL:name:fileName:mimeType:error: 必须实现的方法
    • - appendPartWithInputStream:name:fileName:length:mimeType: 必须实现的方法
    • - appendPartWithFileData:name:fileName:mimeType: 必须实现的方法
    • - appendPartWithFormData:name: 必须实现的方法
    • - appendPartWithHeader:body: 必须实现的方法
    • - throttleBandwidthWithPacketSize:delay: 必须实现的方法

    实例方法

    appendPartWithFileData:name:fileName:mimeType:

    - (void)appendPartWithFileData:(NSData *)data name:(NSString *)name fileName:(NSString *)fileName mimeType:(NSString *)mimeType

    讨论

    追加HTTP头Content-Disposition:file; filename=#{filename}; name=#{name}Content-Type:#{mimeType}, 其次是编码的文件数据和多部分表单边界。

    参数

    data

    被编码的数据,追加到表单数据。

    name

    指定数据关联的名称。这个参数不能为nil。

    fileName

    指定数据关联的文件名称。这个参数不能为nil。

    mimeType

    指定数据的MIME类型。(举个例子,JPEG图片的MIME类型为image/jpeg)有效的MIME类型列表,详见http://www.iana.org/assignments/media-types/ .这个参数不能为nil。

    声明处

    AFURLRequestSerialization.h

    appendPartWithFileURL:name:error

    - (BOOL)appendPartWithFileURL:(NSURL *)fileURL name:(NSString *)name error:(NSError *_Nullable __autoreleasing *)error

    讨论

    追加HTTP头Content-Disposition: file; filename=#{generated filename}; name=#{name}Content-Type:#{generated mimeType},其次是编码的文件数据和多部分表单边界。
    分别使用fileURL中最后的路径部分和文件URL扩展的系统关联MIME类型,在表单中数据的文件名和MIME类型将自动生成。

    参数

    fileURL

    追加到表单的文件内容对应的URL。这个参数不能为nil。

    name

    指定数据相关联的名称。这个参数不能为nil。

    error

    如果一个错误发生,返回一个包含描述问题的NSError对象。

    返回值

    如果文件数据追加成功,返回YES,否者返回NO。

    声明处

    AFURLRequestSerialization.h

    appendPartWithURL:name:fileName:mimeType:error

    - (BOOL)appendPartWithFileURL:(NSURL *)fileURL name:(NSString *)name fileName:(NSString *)fileName mimeType:(NSString *)mimeType error:(NSError *_Nullable __autoreleasing *)error

    讨论

    追加到HTTP头Content-Disposition: file; filename=#{filename}; name = #{name}Content-Type: #{mimeType}, 其次是编码的文件数据和多部分表单边界。

    参数

    fileURL

    追加到表单的文件内容对应的URL。这个参数不能为nil。

    name

    指定数据相关联的名称。这个参数不能为nil。

    fileName

    在Content-Disposition头中使用的文件名称。这个参数不能为nil。

    mimeType

    文件数据的公开的MIME类型。这个参数不能为nil。

    error

    如果一个错误发生,返回一个包含描述问题的NSError对象。

    返回值

    如果文件数据追加成功,返回YES,否者返回NO。

    声明处

    AFURLRequestSerialization.h

    appendPartWithFormData:name:

    - (void)appendPartWithFormData:(NSData *)data name:(NSString *)name

    讨论

    追加HTTP头Content-Disposition: form-data; name=#{name}, 其次编码的数据和多部分表单的边界。

    参数

    data

    被编码的数据,并追加到表单的数据。

    name

    根据指定数据相关联的名称。这个参数不能为nil。

    声明处

    AFURLRequestSerialization.h

    appendPartWithHeaders:body:

    - (void)appendPartWithHeaders:(nullable NSDictionary<NSString*,NSString*> *)headers body:(NSData *)body

    讨论

    追到HTTP头,其次为编码数据和多部分表单边界。

    参数

    header

    被追到表单数据的HTTP头。

    body

    被编码的数据并追加到表单数据。这个参数不能为nil。

    声明处

    AFURLRequestSerialization.h

    appendPartWithInputStream:name:filename:length:mimeType:

    - (void)appendPartWithInputStream:(nullable NSInputStream *)inputStream name:(NSString *)name fileName:(NSString *)fileName length:(int64_t)length mimeType:(NSString *)mimeType

    讨论

    追加HTTP头Content-Dispostion: file; filename=#{filename}; name=#{name}Content-Type:#{mimeType}, 其次是输入流的数据和多部分表单边界。

    参数

    inputStream

    被追加到表单数据的输入流。

    name

    与指定输入流相关联的名称。这个参数不能为nil。

    fileName

    与制定输入流相关联的文件名称。这个参数不能为nil。

    length

    指定输入流的字节长度。

    mimeType

    指定数据的MIME类型。(举例, 一个JPEG图片的MIME类型为image/jpeg)一个有效MIME类型的列表,详见http://www.iana.org/assignments/media-types/。这个参数不能nil。

    声明处

    AFURLRequestSerialization.h

    throttleBandwidthWithPacketSize:delay:

    - (void)throttleBandwidthWithPacketSize:(NSUInteger)numberOfBytes delay:(NSTimeInterval)delay

    讨论

    通过限制包的大小来控制请求带宽,为从上传流中读取每个大块添加延迟。
    当通过3G或EDGE链接上传时,请求可能报“请求体流耗尽”的失败。依据建议的值(kAFUploadStreamGSuggestedPacketSize和 kAFUploadStream3GSuggestedDelay)设置一个最大的包大小和延迟,降低输入流分配过多的带宽的风险。同时,不建议你只基于网络可达性来限制带宽。替代的,你应该考虑在一个失败的块中检查“请求体流耗尽”,同时用限制带宽来重试请求。

    参数

    numberOfBytes

    包的最大字节数。默认的输入流包大小为16kb。

    delay

    每次读取一个包的延时间隔。默认情况下,不设置延时。

    声明处

    AFURLRequestSerialization.h

    // END 应该好好看看API啊,并看看怎么实现的。仅仅会用觉得没有安全感啊。

    相关文章

      网友评论

        本文标题:AFMultipartFormData协议说明

        本文链接:https://www.haomeiwen.com/subject/twnbhxtx.html