星空网 > 软件开发 > 操作系统

iOS的URL处理

  前两天处理iOSapp过程中(我是用swift语言写的,资料较少),被一个“字符串”搞了一晚上的时间到第二天才处理好,在此记下,望见过此文的学生有一天遇到该情况能三分钟搞定不浪费时间:

先看如下代码

func getBalance(){

        let url = NSURL(string: "http://www.weather.com.cn/data/sk/101110101.html")

        let data = NSData(contentsOfURL: url!)

        if data != nil {

            let dict: NSDictionary = (try! NSJSONSerialization.JSONObjectWithData(data!, options: .AllowFragments)) as! NSDictionary

            let weatherInfo = dict.objectForKey("weatherinfo") as! NSDictionary

            print("得到天气数据了")

            var city = weatherInfo.objectForKey("city") as! String

            print("得到城市名称了")

    ... ...

        }

    }

是不是觉得没什么,直接访问就可以了,没错,但是这只是最基本的URL地址,要是我们的地址是这样子的呢

http://183.252.21.19:81/bhys/d/api/?apiType=check&rqsJson={"cardNo":"999000002111","pwd":"000211","name":"民生卡11"}&sign=123456789

会发现我们的字符串里有双引号,参数有中文等特殊字符,这个时候,再直接访问会出现什么情况?不对,是根本访问不了,因为很显然我们需要在let url = NSURL(string: "http://......")该字符串里进行转义,用我们的斜杠/"但是转了之后还是无法通过,Xcode会报错:url is nil

 

因为我也是第一次接触app开发,没有OC经验,不晓得是iOS原本就不识别/转义还是swift不识别,毕竟新语言。

 

问题的解决是另一种“转义”——编码,将URL进行encode编码一下就可以了,上面那段URL将双引号和大括号经过encode编码如下:

http://183.252.21.19:81/bhys/d/api/?apiType=check&rqsJson=%7B%22cardNo%22:%22999000002111%22,%22pwd%22:%22pwd%22,%22name%22:%22民生卡11%22%7D&sign=123456789

这个时候不仅可以访问,还可以加参数,如下:

http://183.252.21.19:81/bhys/d/api/?apiType=check&rqsJson=%7B%22cardNo%22:%22"+IDNumber+"%22,%22pwd%22:%22"+pwdNumber+"%22,%22name%22:%22"+Name+"%22%7D&sign=123456789

 

记住:

  一、有编码就有解码,不过解码那是服务端的事情了,移动端开发人员要知道这件事情。

  二、上文只是提供一个思路,让遇到URL问题的同学知道有encode编码这件事,具体的转码还要看服务端的,有些服务端只提供一部分转码,如上文,只转

{"cardNo":"999000002111","pwd":"000211","name":"民生卡11"},而http://183.252.21.19:81/bhys/d/api/?apiType=check&rqsJson=没有转码,这都是可能的,还需变通,不可照搬。




原标题:iOS的URL处理

关键词:IOS

IOS
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

tiktok犯法吗挣钱:https://www.goluckyvip.com/tag/82497.html
tiktok的影响力:https://www.goluckyvip.com/tag/82498.html
tiktok creator:https://www.goluckyvip.com/tag/82499.html
SpeedPAK物流:https://www.goluckyvip.com/tag/8250.html
tiktok 全托管入驻:https://www.goluckyvip.com/tag/82500.html
tiktok本土店铺:https://www.goluckyvip.com/tag/82501.html
南京浦口都有什么好玩的地方 南京浦口都有什么好玩的地方推荐:https://www.vstour.cn/a/363180.html
永康白云风景区怎么走 白云山风景区怎么去??:https://www.vstour.cn/a/363181.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流