美文网首页iOS开发杂谈
iOS端post请求参数中含有"+"号,传到

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

作者: 世觋 | 来源:发表于2017-08-02 16:41 被阅读26次

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

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

    1、修改客户端

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

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

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

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

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

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

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

    NSString*encodedUrl = [urlstringByAddingPercentEncodingWithAllowedCharacters:allowedCharacters];

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

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

    相关文章

      网友评论

        本文标题:iOS端post请求参数中含有"+"号,传到

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