您的位置:首页 > 理论基础 > 计算机网络

在发起网络请求时可能会需要对URLString进行编码

2016-05-26 16:38 417 查看
背景是今天一个小妹妹问我说:https你会吗?我要用https的接口请求数据,博主一听,https?上一次刚好用过,但是最后没有证书验证,所以一直很遗憾,当听到时乐坏了,果断说会啊,然后兴高采烈的拿到了小姑娘发的接口和cer证书,点击接口网页打开,看到了json数据。。。。。。。此处沉默三秒种,然后使用AF3.0来请求数据,然后。。。。。。此处沉默一分钟,你猜的没错,都能拿到数据,难道我搞错了?不科学啊,我还没用证书呢。跟小姑娘一说,小姑娘说用的AF2.0,可是也没啥区别啊,行吧,我换AF2.0,结果怎么样,大家已经清楚了。没错,虽然是https的接口,但是没有做接口的握手的SSL认证,所以跟http的接口没啥区别。

但是为什么小姑娘请求不到数据呢?好吧,发个控制台报错截图看看,



看出来了吧,因为URLString可能存在某些字符需要转码,遂

NSString *URLEncoding = [URLString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];  //转码成UTF-8  否则可能会出现错误


然后数据出来了,好神奇啊。

初学者在请求数据时要注意啦,如果你们的接口含有汉字或者某些特殊字符时,需要转码UTF-8,否则是不符合http或者https接口规范的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: