AFN - AFHTTPSessionManager

这个类的说明中这样写道:AFHTTPSessionManager是AFURLSessionManager的子类,为了便利使用HTTP请求。当一个baseURL提供时,用相对路径构造GET/POST等便利的方法来创建请求。对于iOS 7 or Mac OS X 10.9以后的版本,推荐继承AFHTTPSessionManager,并提供一个单例创建。

初始化方法

ps: manager创建的是无baseurl的,不是单例的形式,需要自己实现单例。baseUrl的设定可以在以后GET,POST的方法时URLString使用相对地址。

+ (instancetype)manager;

- (instancetype)initWithBaseURL:(nullable NSURL *)url;

- (instancetype)initWithBaseURL:(nullable NSURL *)url
           sessionConfiguration:(nullable NSURLSessionConfiguration *)configuration

请求和相应序列化

AFHTTPRequestSerialization来处理参数的序列化过程。默认是[AFHTTPRequestSerializer serializer]。他的子类有AFJSONRequestSerializer和AFPropertyListRequestSerializer,可快速实例化,设置Content-Type。

@property (nonatomic, strong) AFHTTPRequestSerializer <AFURLRequestSerialization> * requestSerializer;

方便方法由响应序列化程序自动验证和序列化。 默认情况下,此属性设置为“AFJSONResponseSerializer”的实例

@property (nonatomic, strong) AFHTTPResponseSerializer <AFURLResponseSerialization> * responseSerializer;

发送请求

111.png

ps:一般服务端语言如php、python等,以及它们的framework,都内置了自动解析常见数据格式的功能。服务端通常是根据请求头(headers)中的Content-Type字段来获知请求中的消息主体是用何种方式编码,再对主体进行解析。所以说到POST提交数据方案,包含了Content-Type和消息主体编码方式两部分。POST请求的常用格式

  • application/x-www-form-urlencoded(默认)
  • multipart/form-data(表单)
  • application/json(json)

可以通过设置requestSerializer快速设置,requestSerializer默认是AFHTTPRequestSerializer; AFJSONRequestSerializer 和 AFPropertyListRequestSerializer(Content-Type:application/x-plist)可以通过实例化快速设置, 表单形式可以通过上面图片封装的方法。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,026评论 19 139
  • AFN什么是AFN全称是AFNetworking,是对NSURLConnection、NSURLSession的一...
    JonesCxy阅读 1,259评论 0 5
  • 218.241.181.202 wxhl60 123456 192.168.10.253 wxhl66 wxhl6...
    CYC666阅读 1,454评论 0 6
  • AFN什么是AFN全称是AFNetworking,是对NSURLConnection、NSURLSession的一...
    醉叶惜秋阅读 1,253评论 0 0
  • 那日同学聚会,十几年未见的老同学,看见我的第一句话便是,“这么多年了,你一点也没变。” 听到这句话,我真不知该高兴...
    诗悠912阅读 317评论 2 2