美文网首页
iOS URLEncode空格转加号

iOS URLEncode空格转加号

作者: 東玖零 | 来源:发表于2021-09-09 17:40 被阅读0次

问题:当我提交一个时间2021-09-09 12:30给接口,服务器日志打印的日志确变成了2021-09-09+12:30。

想到工程中有个POST参数处理逻辑,提交参数的时候需要将空格替换成加号,搜索一下,这个问题由来已久大神讲得比较明白

寻思着将这段代码去掉,结果签名不通过,查看了一下生成签名及提交过程。

客户端逻辑
1.将2021-09-09 12:30进行URLEncode生成2021-09-09%2012:30。
2.然后md5(2021-09-09%2012:30)得到签名sign。
3.再把2021-09-09%2012:30和sign的值提给接口。

服务端逻辑
1.将2021-09-09%2012:30进行url.QueryUnescape得到2021-09-09 12:30。
2.再将2021-09-09 12:30进行url.QueryEscape得到2021-09-09+12%3A30。
3.然后md5(2021-09-09+12%3A30)得到签名sign。

结论:对比后签名不通过原因就是url.QueryEscape在空格替换成加号了。

最开始我在想不必要将所有的参数都处理空格换成加号,其实还是需要的,因为服务端接收到的所有参数都经过了url.QueryUnescape处理,其实最根本的原因是urlcode编码不一样(逻辑有点绕)。

iOS要达到和Android同样的效果有两点:

1.字符串中每个字符要单独判断。
2.如循环取出的一个字是空格,就替换成加号。
3.如循环取出的一个字是不是空格,就要进行编码。

最后帖上swfit5的最新写法:

func escape(_ string: String) -> String {
   var str = ""
   var set = NSCharacterSet.urlQueryAllowed
   set.remove(charactersIn: "!*'\"();:@&=+$,/?%#[]% ")
   for char in string {
      if char == " " {
          str += "+"
      } else {
          str += (String(char).addingPercentEncoding(withAllowedCharacters: set) ?? String(char))
      }
   }
   return str
}

相关文章

  • iOS URLEncode空格转加号

    问题:当我提交一个时间2021-09-09 12:30给接口,服务器日志打印的日志确变成了2021-09-09+1...

  • iOS开发经验 | POST 加号变空格

    1.项目背景,整理问题 目前正在做一款理财 APP,需要访问第三方银行的H5页面。本来使用 WKWebView 实...

  • URL编解码空格转加号的坑

    记录一下https://juejin.cn/post/7018447255774429214[https://ju...

  • iOS URLEncode

    之前的 URLEncode 实现收到了 Xcode 的黄警告: 于是换成了新的实现( iOS 7 和更高): 参考...

  • Sql-labs-page2-...

    less-26 urlencode %27 是 ' ,%26 是 & %a0 是 空格构造基本语句id=0'uni...

  • 爬虫数据(js的escape)解码总结

    带%20的通常是 urlencode/quote 转码,%20表示空格在get请求的中,URL串应该被encode...

  • iOS中urlencode

    iOS开发过程中有很多的编码,最近使用了urlencode编码,使用这个编码的主要作用是解决url中出现中文或者特...

  • iOS swift urlencode

    swift 升级到5,更新了三方库,支持的系统也从ios 8 升到了 ios 10 。发现有很多方法过期了。1.编...

  • feign 调用第三方服务中部分特殊符号未转义

    开发过程中,发现+(加号)这个符号没有转义,导致再调用服务的时候把加号转义成空格了。导致后台获取到的数据会不正确。...

  • iOS 转码

    URLEncode iOS 开发中请求访问 Http(s) 时,必须对 URL 进行转码 (Encode),如果是...

网友评论

      本文标题:iOS URLEncode空格转加号

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