热门搜索 :
考研考公
您的当前位置:首页正文

iOS端post请求参数中含有"+"号,传到

来源:东饰资讯网

在近期的项目开发中遇到一个问题,在数据进行加密后,有些字符串加密后会含有“+”号,在服务器端接收到为空格;

在网上查了很多资料,大体方案有以下几种:

1、修改客户端

将参数中的“+”全部替换为‍“%2B”;

但是我这边测试后服务器收到的就是“%2B”,惆怅~~~

2、服务器端将空格替换为“+”,但是这种方式只适用于参数中有‍“+”没有空格的情况,不敢尝试;

或者服务器端将“%2B”全部替换为“+”,同样不想选择这种方式;

3、使用stringByAddingPercentEncodingWithAllowedCharacters方法对特殊字符转义

NSString*charactersToEscape =@"?!@#$^&%*+,:;='\"`<>()[]{}/\\| ";

NSCharacterSet*allowedCharacters = [[NSCharacterSetcharacterSetWithCharactersInString:charactersToEscape]invertedSet];

NSString*encodedUrl = [urlstringByAddingPercentEncodingWithAllowedCharacters:allowedCharacters];

使用后发现“+”还是变成了“%2B”,囧~~

4、最终的处理方式是将字符串转换成16进制,服务器端再转换回去即可,成功解决问题😁😁😁

Top