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

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

作者: 心在前方 | 来源:发表于2017-04-07 13:52 被阅读0次

    最近使用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请求,中文参数变乱码的解决办法

          本文链接:https://www.haomeiwen.com/subject/ynrhattx.html