iOS开发中的 GET 与 POST
2016-01-02 12:50
330 查看
相同之处
都是请求方法都能传递参数
区别之处
get 主要用于得,一般大小限制在2~8k,参数会暴露在地址栏,不安全
post 主要用于
给,无大小限制,参数包装在请求体中,安全
区别 | get | post |
---|---|---|
用途 | 得 | 给 |
大小限制 | 2~8K | 不限 |
参数 | 暴露在地址栏 | 包装在请求体中 |
安全性 | 不安全 | 安全 |
方法 | 不需要明确指明 | 需要明确指定 |
参数拼接 | 从第二个参数起,不管是 get 还是 post都是用&符号拼接 | |
参数中有中文 | 需要自行对参数进行百分号转义 | 不需要转义 |
缓存 | 有 | 无 |
url 有中文或者有空格处理
发送请求的 url 中不能包含中文 ,需要将中文进行百分号转义,String 的对象方法- stringByAddingPercentEscapeUsingEncoding只能对中文和空格进行转义,其他特殊字符串一概不认识
自定义的处理方法
该方法可以把带特殊字符的字符串进行百分号转义
- (NSString*)generalUrlString:(NSString*)urlString { NSString* encodingString = (__bridge_transfer NSString*)CFURLCreateStringByAddingPercentEscapes(NULL, (__bridge CFStringRef)urlString, CFSTR("!*()[];:@&=+$,?%#"), NULL, CFStringConvertNSStringEncodingToEncoding(NSUTF8StringEncoding)); return encodingString; }
在开发中如何选择
在上传数据给服务器时,能用就尽量使用 POST,因为 POST 安全性高如果只是简单从服务器获取数据,不需要给服务器传输数据,强烈建议使用 GET,因为 GET 有缓存,效率高
相关文章推荐
- runtime objc_msgSend
- CALayer - 7
- iOS,如何卸载模拟器上安装的程序
- iOS程序启动原理
- 17个提升iOS开发效率的必用工具
- ios学习顺序表
- IOS7:学习笔记1
- iOS生成二维码
- CALayer - 6
- iOS扫描二维码
- IOS:程序的退出
- CALayer - 5
- iOS开发学习-NSUserDefaults的介绍和用法
- iOS开发new与alloc/init的区别
- CALayer - 4
- IOS应用上传须要做的工作
- iOS-私有API与runtime
- IOS中对于一些控件的抖动效果
- iOS 学习(Whereami)
- ios文件和文件夹NSFileManager类