ios网络请求特殊字符&处理
原文地址:http://www.xuebuyuan.com/2039420.html
CFURLCreateStringByAddingPercentEscapes
在作项目的的时候,一般都要用到网络搜索,所以链接(也就是NSURL)也会总是存在一些中文或者特殊字符,但是对于网址是不允许存在一些特殊字符的,所以在这里我列出一个对一个字符串进行NSUTF-8转码的宏,希望可以给大家提供方便。
If you have tried to send any information using a GET web request, you would have come cross an annoying problem, That annoying problem is making sure that the URL is corrently encoded.
The issue is that by default most of these methods leave characters such as & = ? within a URL, as they are strictly speaking valid. The problem is that these characters have special meanings in a GET request, and will more than likely make your request invalid.
也就是说, URL 字符串 里面可能包含某些字符,比如‘$‘ ‘&’ ‘?’...等,这些字符在 URL 语法中是具有特殊语法含义的,
比如 URL :http://www.baidu.com/s?wd=%BD%AA%C3%C8%D1%BF&rsv_bp=0&rsv_spt=3&inputT=3512
中 的 & 起到分割作用 等等,如果 你提供的URL 本身就含有 这些字符,就需要把这些字符 转化为 “%+ASCII” 形式,以免造成冲突。
这就引入:CFURLCreateStringByAddingPercentEscapes 函数。
该函数将 将要添加到URL的字符串进行特殊处理,如果这些字符串含有 &, ? 这些特殊字符,用“%+ASCII” 代替之。
CFURLCreateStringByAddingPercentEscapes(
kCFAllocatorDefault,
(CFStringRef)parameter,
NULL,
CFSTR(":/?#[]@!$&’()*+,;="), // 确定 parameter 字符串中含有:/?#[]@!$&’()*+,;=这些字符时候,这些字符需要被转化,以免与语法冲突。
kCFStringEncodingUTF8
);
#define NSUTF8String(v) ((NSString *)CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,(CFStringRef)(v), NULL, CFSTR(":/?#[]@!$’()*+,;"), kCFStringEncodingUTF8)) 这里记得调用这个宏之后要对获得的字符串进行一次release
ios网络请求特殊字符&处理的更多相关文章
- 【转载】一步一步搭建自己的iOS网络请求库
一步一步搭建自己的iOS网络请求库(一) 大家好,我是LastDay,很久没有写博客了,这周会分享一个的HTTP请求库的编写经验. 简单的介绍 介绍一下,NSURLSession是iOS7中新的网络接 ...
- springmvc接口ios网络请求
springmvc: application/json;charset=utf-8的ios网络请求: 后台使用 @RequestBody注解参数接收:
- IOS 网络请求
技术交流新QQ群:414971585 关于网络请求的重要性我想不用多说了吧.对于移动客户端来说,网络的重要性不言而喻.常见的网络请求有同步GET, 同步POST, 异步GET, 异步POST.今天来看 ...
- IOS 网络请求方式
iOS开发中的网络请求 今天来说说关于iOS开发过程中的网络请求. 关于网络请求的重要性我想不用多说了吧.对于移动客户端来说,网络的重要性不言而喻.常见的网络请求有同步GET, 同步POST, 异 ...
- iOS 网络请求NSURLSession
iOS 7 和 Mac OS X 10.9 Mavericks 中一个显著的变化就是对 Foundation URL 加载系统的彻底重构. 现在已经有人在深入苹果的网络层基础架构的地方做研究了,所以我 ...
- IOS网络请求框架AFNetworking和ASIHttpRequest对比
ASI基于CFNetwork框架开发,而AFN基于NSURL. ASI更底层,请求使用创建CFHTTPMessageRef进行,使用NSOperationQueue进行管理,ASIHTTPReques ...
- iOS网络请求基础
这篇是关于网络请求的,结合公司的实际情况编写,如果有不同意见欢迎留言共同讨论. iOS在9.0之后彻底放弃了NSURLConnection,现在已经改用了NSURLSession进行网络请求.一般现在 ...
- IOS网络请求之NSURLSession使用
前言: 无论是Android还是ios都离不开与服务器交互,这就必须用到网络请求,记得在2013年做iOS的时候那时候用的ASIHTTPRequest框架,现在重新捡起iOS的时候ASIHTTPReq ...
- IOS网络请求之AFNetWorking 3.x 使用
前言: 计划把公司的网络请求与业务解耦,所以想着学习一下网络请求,最近学习了NSURLSession,今天来学习一下基于NSURLSession封装的优秀开源框架AFNetWorking 3.x,之前 ...
随机推荐
- 模板列onclick事件中绑定跳转页参数(onclick location.href Eval)
<asp:GridView runat="server" ID="gvCheckList" AutoGenerateColumns="false ...
- 配置MAVEN出现错误:java_home not found in your enviroment
配置好maven后检测是否配置成功出现错误:java_home not found in your enviroment 找问题: 1.cmd--> path 看路径是否正确 2.cmd--& ...
- 初始通过 FastClick.notNeeded 方法判断是否需要做后续相关处理
其实前面几篇文章大家都遇到一些错误,很多时候呢,我并没有直接回复解决方案,不是LZ不想告诉大家,如果不想那就不写这个了,估计博客园啊CSDN啊那么多写博客的,很少有人把现用框架分享出来,既然分享就毫不 ...
- blade and soul races guide
Race Four races are available for those who wish to choose the path of martial arts: the careful Gon ...
- 50款强力jquey,js 插件推荐
http://www.cnblogs.com/xiaoyao2011/category/327551.html
- Poj1743 (后缀数组)
#include<cstdio> #include<algorithm> #include<cstring> #include<cmath> using ...
- C# Request中修改header信息
var headers = app.Context.Request.Headers; Type hdr = headers.GetType(); PropertyInfo ro = hdr.GetPr ...
- php发送邮件
<?php header("content-Type: text/html; charset=utf-8"); require("class.phpmailer.p ...
- input框只允许输入数字 --------20160705
//jquery方法 var num = $(this).val(); num = parseInt(num); if(!num){ $(this).html(''); } $(this).val(n ...
- linux系统中查看系统位数(转载)
查看系统多少位网上很多种说话 ### getconf WORD_BIT 错误的 这3个是对的 getconf LONG_BIT echo $HOSTTYPE uname -a ...