您的当前位置:首页正文

iOS HTTP简单说说

2024-12-19 来源:东饰资讯网

AFNetworking是一个轻量级的iOS网络通信类库。它建立在NSURLConnection和NSOperation等类库的基础上,让很多网络通信功能的实现变得十分简单。它支持HTTP请求和基于REST的网络服务(包括GET、POST、 PUT、DELETE等)。支持ARC

1.首先 所有的网络请求,均有manager发起

        AFHTTPRequestOperationManager *manager=[AFHTTPRequestOperationManager manager];        
        manager.requestSerializer = [AFJSONRequestSerializer serializer];
        manager.responseSerializer = [AFJSONResponseSerializer serializer];

需要注意的是,默认提交请求的数据是二进制的,返回格式是JSON

  1. 如果提交数据是JSON的,需要将请求格式设置为AFJSONRequestSerializer
  2. 如果返回格式不是JSON的,
  1. 请求格式
  • AFHTTPRequestSerializer | 二进制格式
  • AFJSONRequestSerializer | JSON
  • AFPropertyListRequestSerializer | PList(是一种特殊的XML,解析起来相对容易)
    AF的 AFHTTPRequestSerializer 和 AFJSONRequestSerializer是传递有区分
    AFHTTPRequestSerializer的传递 在底层又对 参数和参数值进行了一次Url编码
  [mutableRequest setHTTPBody:[query dataUsingEncoding:self.stringEncoding]];

AFJSONRequestSerializer的传递 则是在底层将 参数(一般情况下我们传递的是字典类型 也就是java中的map形式)转化为了NSData类型进行传递

   [mutableRequest setHTTPBody:[NSJSONSerialization dataWithJSONObject:parameters options:self.writingOptions error:error]];

一般的网络请求分为2种也就是mimeType的2种类型

另附上平时接受和发送请求实例解说

服务端回复:
// 协议头 协议版本 响应码 请求结果 \r\n
HTTP/1.1 200 OK
// 服务端用的框架
Server: nginx/1.14.0
// 回复时间
Date: Mon, 13 Aug 2018 05:55:46 GMT
// body文本类型
Content-Type: application/json;charset=UTF-8
// 告诉客户端支持keep-alive
Connection: keep-alive
X-Application-Context: application:8930
// body长度
Content-Length: 506

// 想隔两个\r\n放body
{"code":1,"msg":"操作成功!",。。。

显示全文