您好,欢迎来到伴沃教育。
搜索
您的当前位置:首页iOS端post请求参数中含有"+"号,传到

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

来源:伴沃教育

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

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

1、修改客户端

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

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

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

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

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

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

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

NSString*encodedUrl = [urlstringByAddingPercentEncodingWithAllowedCharacters:allowedCharacters];

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

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

Copyright © 2019- bangwoyixia.com 版权所有 湘ICP备2023022004号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务