AFNetworking 3.0封装post请求body里面内容是空的

By | 06月01日
Advertisement

迁移到AFNetworking 3.0,网上资料较少。发现封装post,body里面内容是空的,服务端收到的params为空。

自己研究了一个正确的写法。供大家参考。

NSDictionary *param = [NSDictionarydictionaryWithObjectsAndKeys:@{@"agent":@"X-IOS",@"version":[[UIDevicecurrentDevice]
systemVersion],

_smanager = [AFHTTPSessionManagermanager];

_smanager.securityPolicy = securityPolicy;

_smanager.responseSerializer = [AFHTTPResponseSerializerserializer];

_smanager.operationQueue.maxConcurrentOperationCount
= 10;

_smanager.requestSerializer = [AFJSONRequestSerializerserializer];

[_smanager.requestSerializersetValue:@"agent"forHTTPHeaderField:@"X-IOS"];

[_smanager.requestSerializersetValue:@"local"forHTTPHeaderField:country];

[_smanager.requestSerializersetValue:@"version"forHTTPHeaderField:[[UIDevicecurrentDevice]systemVersion]];

[_smanager.requestSerializersetValue:@"device"forHTTPHeaderField:[[UIDevicecurrentDevice]model]];

[_smanagerPOST:url

parameters:param

success:^(NSURLSessionDataTask *_Nonnull task,
id _Nonnull responseObject) {

NSString *str = [responseObjectJSONString];

NSDictionary *info = [responseObjectJSONObject];

}

failure:^(NSURLSessionDataTask *_Nullable task,
NSError *_Nonnull error) {

}];

这个写法,服务端收到的参数是正常的。

希望大家多多分享。

Similar Posts:

  • iOS开发--Swift 基于AFNetworking 3.0的网络请求封装

    Swift和OC基于AFNetworking的网络请求流程相同, 就是语法不同, 对于Swift语法不是很清楚的同学, 建议多看看API文档, 自己多多尝试. 写过OC的应该都明白每句话做什么的, 就不过多解释了. 之前有讲过如何进行混编, 所以集成AFNetworking的过程就不再赘述 直接上代码, 不废话, import UIKit class InternetDataRequeset { //Post请求时, Body字符串转换成字典方法 //设置类型为静态方法 static func

  • iOS网络请求工具oc版,swift版基于AFNetworking的简单封装

    iOS网络请求工具oc版,swift版基于AFNetworking的简单封装 字数1727 阅读1212 评论11 喜欢25 1.为什么要封装 对于AFNetworking的使用,相信大多数的公司都会用到,毕竟开源框架,安全高效.为了提高效率和代码的可维护性,我们就要二次封装AFN. 2,以前遇到问题 一个老项目,需要进行IPV6的迁移(虽然老版本的AFN也支持IPV6),但是方法变了,之前没有封装AFN,项目中用到AFN请求的地方有很多,接口上千,那么AFN出现的地方就上千个.更新AFN后,不

  • Working with NSURLSession: AFNetworking 2.0

    简单翻译,有很多错误,看官无法理解处请英文原文对照. http://code.tutsplus.com/tutorials/working-with-nsurlsession-afnetworking-20--mobile-22651 by Bart Jacobs3 Feb 2014 In the previous installments of this series, we've taken a close look at the NSURLSession API introduced in

  • AFN3.0封装

    感谢百度文章作者 jq002,最下边的投票很 对AFNetworking V3.0+(3.0及以上版本) 进行简单封装和使用.AFNetworking是一个非常方便的iOS网络请求库,可以轻松实现网络请求.这里只实现AFNetworking框架的一丁点功能,不过也够开发一个app了.可以实现的请求方式:POST / GET / PUT / PATCH / DELETE:也可以加载网络图片等.可回调成功和失败结果.封装类在github上的AFNetworkingDemo上,里面的代码可能随着AFN

  • [iOS微博项目 - 3.3] - 封装网络请求

    github: https://github.com/hellovoidworld/HVWWeibo A.封装网络请求 1.需求 为了避免代码冗余和对于AFN框架的多处使用导致耦合性太强,所以把网络请求封装成自己的工具类,以后便于更换网络框架. 2.思路 创建一个自定义工具类,提供类方法来实现网络请求 3.实现 1 // 2 // HVWNetworkTool.h 3 // HVWWeibo 4 // 5 // Created by hellovoidworld on 15/2/9. 6 //

  • AFNetworking 2.0使用(持续更新)

    本人视频教程系列 导入AFNetworking 2.0 文件夹,引入头文件AFNetworking.h --------------- *使用NSURLSessionDownloadTask来下载一张图片,并带有下载进度(以下两段代码是一起的,注意) NSProgress为iOS7新增加的类 // 定义一个progress指针 NSProgress *progress; // 创建一个URL链接 NSURL *url = [NSURL URLWithString:\ @"http://wallp

  • AFNetworking 3.0迁移指南

    原文出自:http://mp.weixin.qq.com/s?__biz=MjM5OTM0MzIwMQ==&mid=400163159&idx=1&sn=f51f7f5904e31ee6b7426c6f33053776&scene=23&srcid=1023H8UyUbiSyUxTkN8v2h4y#rd AFNetworking是一款在OS X和iOS下都令人喜爱的网络库.为了迎合iOS新版本的升级, AFNetworking在3.0版本中删除了基于 NSURLCo

  • AFNetworking 3.0迁移

    AFNetworking是一款在OS X和iOS下都令人喜爱的网络库. iOS新版本的升级, AFNetworking在3.0版本中删除了基于 NSURLConnection API的所有支持. 如果你的项目以前使用过这些API,建议您立即升级到基于 NSURLSession 的API的AFNetworking的版本. 新设备要求: iOS 7, Mac OS X 10.9, watchOS 2, tvOS 9, & Xcode 7 AFNetworking 3.0正式支持的iOS 7, Mac

  • iOS上传文件(图片)之AFNetworking 3.0上传文件上传图片

    iOS上传文件(图片)之AFNetworking 3.0上传文件上传图片 本人最近做了一个上传头像的功能,找了许多iOS上传图片的资料,特意整理了下,希望对大家有帮助! 上传图片其实也是一个post请求,但你需要在请求头中告诉服务器一些信息 例如 解析格式, NSString *charset = (__bridge NSString *)CFStringConvertEncodingToIANACharSetName(CFStringConvertNSStringEncodingToEncod

  • 封装http请求返回统一json格式数据的网络操作

    在开发android app时候,总会需要封装一些网络操作. 比如:如果服务器返回的是一个json格式数据,格式满足:{"ErrorCode":XX, "ErrorMessage":XXX,"Data":XXXX}.其中XX是int类型数据,XXX是string类型数据,XXXX是一个满足json格式的字符串. 对于这样的需求,按照下面的思路来封装http请求是个不错的思路. 首先定义一个请求结果的封装类. public class HttpRe

Tags: