NSURLSession请求 加gb2312编码 发表于 2018-05-03 | | 需求是:请求的时候参数是汉字的进行gb2312编码, 最开始用的AF,AF默认是UTF-8编码 通过修改编码格式不行, AF最后提交的时候会进行2次编码, 最后用原生写解决 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475NSStringEncoding encGbk = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000); // NSString *retStr =name; NSString *retStr = [name stringByAddingPercentEscapesUsingEncoding:encGbk]; NSString * urls = @"";//地址// NSDictionary * dic = @{// @"id_card":id_card,// @"name":retStr,// @"valCode":valCode,// @"certificate_code":@"",// @"evelop_code":@""// }; //certificate_code=&evelop_code=&id_card=&name=%E5%90%95%E6%85%A7%E5%BC%BA&valCode=4174 NSString *body= [NSString stringWithFormat:@"certificate_code=%@&evelop_code=%@&id_card=%@&name=%@&valCode=%@",@"",@"",id_card,retStr,valCode]; NSURLSession *session=[NSURLSession sharedSession]; NSURL *url=[NSURL URLWithString:urls]; NSMutableURLRequest *request=[NSMutableURLRequest requestWithURL:url]; [request setHTTPMethod:@"POST"]; [request setValue:@"application/x-www-form-urlencoded;charset=gb2312" forHTTPHeaderField:@"Content-Type"]; request.timeoutInterval = 180; [request setValue:@"iir.circ.gov.cn" forHTTPHeaderField:@"Host"]; [request setValue:@"keep-alive" forHTTPHeaderField:@"Connection"]; [request setValue:@"gzip,deflate" forHTTPHeaderField:@"Accept-Encoding"]; [request setValue:@"zh-CN,zh;q=0.8" forHTTPHeaderField:@"Accept-Language"]; [request setValue:@"" forHTTPHeaderField:@"Origin"];// [request setValue:@"Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)" forHTTPHeaderField:@"User-Agent"]; [request setValue:@"" forHTTPHeaderField:@"Referer"];// NSString * cookie = [[NSUserDefaults standardUserDefaults] valueForKey:@"cookie"]; NSLog(@"***********************cookie为 %@ *************************",cookie); [request setValue:cookie forHTTPHeaderField:@"Cookie"]; [request setValue:@"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8" forHTTPHeaderField:@"Accept"]; // request.acceptableContentTypes = [NSSet setWithObjects:@"application/json", @"text/json", @"text/javascript", @"text/html", @"text/css", @"text/xml", @"text/plain", @"application/javascript", @"image/*",@"application/json", nil]; // request.HTTPBody = [[dic mj_JSONString] dataUsingEncoding:encGbk]; request.HTTPBody = [body dataUsingEncoding:encGbk]; NSString *str = [[NSString alloc] initWithData:request.HTTPBody encoding:encGbk]; NSLog(@" ***********************请求参数***********************%@",str); NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error){ if (error ==nil) { NSString *str = [[NSString alloc] initWithData:data encoding:CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000)]; VMLog(@" ***********************请求成功***********************%@---------------error===%@",str,error); }else{ VMLog(@"%@",error); } }]; //7.执行任务 [dataTask resume];