POST请求,中文参数变乱码的解决办法

最近使用AFNetworking做POST请求的时候,怎么设置编码格式后台收到的数据都是乱码,所以最后使用NSURLSsion类自己写了上传类。代码如下:

//handler为回掉block,这里是声明

+ (id)JQPOST:(NSString *)path parameters:(NSString *)parameters handler:(void(^)(id response, NSError *error))handler;

//这里是实现

+ (id)JQPOST:(NSString *)path parameters:(NSString *)parameters handler:(void (^)(id, NSError *))handler{

// 1.创建一个网络路径

NSURL *url = path.jq_URL;//jq_URL是我写的分类,这里用string转url的方法就可以了

// 2.创建一个网络请求,分别设置请求方法、请求参数

NSMutableURLRequest *request =[NSMutableURLRequest requestWithURL:url];

request.HTTPMethod = @"POST";

//这行代码是关键,必须设置编码格式,一般默认是UTF-8,如果有问题就跟后台确定一下格式

request.HTTPBody = [parameters dataUsingEncoding:NSUTF8StringEncoding];

// 3.获得会话对象

NSURLSession *session = [NSURLSession sharedSession];

// 4.根据会话对象,创建一个Task任务

NSURLSessionDataTask *sessionDataTask = [session dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {

NSLog(@"从服务器获取到数据");

/*

对从服务器获取到的数据data进行相应的处理.

*/

!handler ?: handler(data,error);//这里我是将data做了回掉,因为很多地方都会用到这个方法,但是模型类不一样,为了方便JSON解析

}];

//5.最后一步,执行任务,(resume也是继续执行)。

[sessionDataTask resume];

return sessionDataTask;

}

你可能感兴趣的:(POST请求,中文参数变乱码的解决办法)