用AFN / NSURLConnection Post上传数据的"+"会变成空格 url编码问题

用NSURLConnection Post上传数据的"+"会变成空格

AFNetworking 请求参数编码问题处理服务器

在一次项目中,要post图片到服务器上去,在以前要将图片转换成base64的格式。可是发现post上去的图片在服务器端老是不存在,通过与后台数据的对比发现image转成base64String里的“+”,post到服务器上都变成了空格。郁闷的很呀!开始没仔细去想,就直接叫后台将我post的string中的空格所有替换成“+”,这倒也算是解决了这个问题。可是总以为这不是解决问题的最佳途径。后台通过查看一些资料,终于发现这个状况在post时,若是url中含有特殊字符(如“+=等”)就会出现的。可是在post以前对这些特殊符号作一次UTF8就能够了解决这个问题了。下面贴代码:post

NSString *baseStr = [imgData base64Encoding];
 NSString *baseString = (__bridge NSString *) CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, 
                                                       (CFStringRef)baseStr, 
                                                       NULL, 
                                               CFSTR(":/?#[]@!$&’()*+,;="), 
                                               kCFStringEncodingUTF8);
[urlRequest setHTTPBody:[baseString dataUsingEncoding:NSUTF8StringEncoding]];

https://blog.csdn.net/wang790492446/article/details/27309367编码

相关文章
相关标签/搜索