因为苹果在6.1后将要使用IPv6,所以很多第三方库都需要重新集成最新的来适配(实际上AF2.0也是支持IPv6的,博主一开始听大家说所以直接集成了3.0,然后才有了这篇博客)。这里就不讲解AF3.0的POST和GET方法了,网上很多,我也只能copy过来,这里就不多余的copy了,有需要的百度或者留言,这里说一说AF3.0需要注意的:
1.AFHTTPRequestOperationManager没有了,换成了AFHTTPSessionManager,这是一个很明显的地方。
2.请求头获取
[manager POST:urlStr parameters:parameters progress:^(NSProgress *progress) { } success:^(NSURLSessionDataTask *_Nullable task,id _Nonnull responseObject) { NSLog(@"%@",responseObject); NSDictionary *headers = task.currentRequest.allHTTPHeaderFields;
以前是operation,现在变成了task。
3.请求和返回格式
manager.requestSerializer = [AFJSONRequestSerializer serializer];//请求 manager.responseSerializer = [AFHTTPResponseSerializer serializer];//响应
需要注意这两句话写与不写时responseObject中返回数据的格式,有时候为data,有时候为字典,不清楚的就先加断点打印看看。
4.你会发现拿不到服务器的数据,那是因为部分acceptableContentTypes不支持,所以需要手动添加:
manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"text/html",@"text/plain",@"application/json",nil];
不支持的全部添加到数组里即可。
到此博主遇到的问题就完了,也许还有其他的问题出现,欢迎大家提出来共享。