使用value.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) ?? ""无法保证URL 编码成功,于是我参考 Alamofire 的URL编码如下:

static func get( _ url: String, parameters: [String: Any] , completionHandler: @escaping (NSError?, JSON) -> Void)  {var urlStr = urlvar flag = truelet generalDelimitersToEncode = ":#[]@" // does not include "?" or "/" due to RFC 3986 - Section 3.4let subDelimitersToEncode = "!$&'()*+,;="var allowedCharacterSet = CharacterSet.urlQueryAllowedallowedCharacterSet.remove(charactersIn: "\(generalDelimitersToEncode)\(subDelimitersToEncode)")for ( key , value) in parameters {var anyValue: Any = valueif let value = value as? String{anyValue = value.addingPercentEncoding(withAllowedCharacters: allowedCharacterSet) ?? ""}if flag{flag = falseurlStr += "?" + key + "=\(anyValue)"}else{urlStr += "&" + key + "=\(anyValue)"}}if let url = URL.init(string: urlStr){var request = URLRequest(url: url)request.cachePolicy = .reloadIgnoringLocalCacheDataURLSession.shared.dataTask(with: request, completionHandler: { (data, response, err) inif let err = err{completionHandler(err as NSError, JSON.null )}else{
//               if let json = try? JSONSerialization.jsonObject(with: data!, options: [.allowFragments, .mutableContainers , .mutableLeaves]) as? [String: Any]  {if let data = data {let json = JSON.init(data: data)guard let code = json["code"].int,let msg = json["msg"].string else{completionHandler(NSError(domain: "", code: 1, userInfo: nil), JSON.null)return}if code  != 10000 {completionHandler(NSError(domain: msg, code: code, userInfo: nil), JSON.null )}else{completionHandler(nil, json["data"])}}}}).resume()}}

swift URL 编码相关推荐

  1. [Swift]URL编码|CharacterSet字符集

    URL编码 import UIKitclass SchoolDetailVC: BaseController {var webView: WKWebView!override func viewDid ...

  2. Swift URL含有中文的处理

    iOS URL含有中文处理 [Swift版本] 在此之前,建议了解"全面深度解析iOS端URL编码和解码过程", 会对URL有一个详细的认识. 一.编码 在使用网络请求的时候我们常 ...

  3. JS 中 URL 编码的问题.

    URL 编码 为什么要对 URL 编码 1. 避免解析错误 我们的 queryString 的形式是使用 ?开始, key=value 传递参数, key-value pairs 之间使用 & ...

  4. PHP--------解决网址URL编码问题

    2019独角兽企业重金招聘Python工程师标准>>> 在PHP中有urlencode().urldecode().rawurlencode().rawurldecode()这些函数 ...

  5. URL编码以及GET和POST提交乱码解决方案

    2019独角兽企业重金招聘Python工程师标准>>> 1.  什么是URL编码. URL编码是一种浏览器用来打包表单输入的格式,浏览器从表单中获取所有的name和其对应的value ...

  6. java url加密解密,java URL 编码解码,该如何解决

    java URL 编码解码 我写了两个接口 一个是对字符串加密 的,一个是解密的  .加密的可以通过调用接口生成加密字符串如下: Oc0PEwKrLzHqT25hYLhWP5wlk5HROPJoWC3 ...

  7. Google App Engine for Java下的URL编码转换问题

    URL编码问题 此部分参考英文资料: http://www.blooberry.com/indexdot/html/topics/urlencoding.htm http://www.w3school ...

  8. URL编码将“&”(&符号)视为“&”HTML实体

    本文翻译自:URL encode sees "&" (ampersand) as "&" HTML entity I am encoding a ...

  9. JS中URL编码参数(UrlEncode)

    网上有很多文字作品写涉及在JS中呈现类似UrlEncode功能时都是自定义参数来呈现,其实JS中本身就有那样的参数. 参数parameter由于用类似URL的形式传过去 , 所以别直接就那样赋值 以下 ...

最新文章

  1. css中hideFocus的用法
  2. Git 工作流的正确打开方式
  3. 系统目录结构,文件类型
  4. quartz 每月一次_Quartz Cron表达式 每周、每月执行一次
  5. 疯子的算法总结(六) 简单排序总 选择排序+插入排序+比较排序+冒泡排序
  6. 信息学奥赛一本通 1245:不重复地输出数 | OpenJudge NOI 1.11 08:不重复地输出数
  7. C# string 判断字符串是否是中文
  8. tp5 mysql异常捕获_tp5 ThinkPhp5 自定义异常处理类
  9. iOS AVPlayer 使用总结
  10. 视觉SLAM十四讲 报错In function `fmt::v8::detail::error_handler::on_error(char const*)‘
  11. 2021年中国资产管理业务总体存量及促进资产管理行业健康发展的对策分析[图]
  12. CentOS7安装IT资产管理系统Snipe-IT
  13. 重大发现:微信新上线的“群接龙”功能,你还不知道吗?
  14. GPS坐标偏移与转换
  15. 面向新手的西门子博途软件常用功能介绍
  16. 浙大MBA复试上岸经历分享——万事俱备复试必得
  17. android更新天气简单方法,简单教你如何编写Android天气预报小程序
  18. 计算方法LU分解c语言程序解线性方程组,LU分解求线性方程组的解
  19. PR剪辑教学之电子相册案例
  20. 原子操作(atomic operation)

热门文章

  1. 使用PackageInstaller安装app流程学习小结
  2. python阶乘算法
  3. CSS hover改变原生时出现抖动解决方法
  4. SAP-PS-如何解决项目Q库存Pr不占项目预算问题
  5. Postman上不能访问而浏览器上能访问接口
  6. 框架运行错误:Ljava/lang/String;Ljava/lang/String;
  7. 【算法杂谈_01】那些非主流排序算法
  8. 无人棋牌室sass,Java
  9. Drupal重新安装
  10. Druid 德鲁伊 配置