iOS 数据请求 get、post
来源:互联网 发布:防御阵型中文版mac 编辑:程序博客网 时间:2024/06/05 20:51
以下是一些简单关于网络的常识
http:超文本传输协议(HyperText Transfer Protocol)
http规定客服端和服务器之间的传输格式
为什么选择使用http
1.简单快速 http协议简单服务器程序规模小 所以通信快速
2.灵活可以传输任意数据类型
3.http是非持续链接 限制每次只处理一个请求服务器响应后马上断开链接 这样可以节省时间
http 通信过程
1.请求客服端
2.响应服务器
*****
http的常用请求方式:get post
get会将请求的内容拼接到连接地址里面(数据请求的时候默认get请求)
get 特征
1.浏览器和服务器对URL的长度有限制因此在URL后面附带的参数是有限制的通常不超过1KB
2.它会把请求的数据暴露在接口里面
post参数全部放在请求体中 这样就保证了数据的基本安全并且请求体没有长度限制(唯一限制就是服务器的承受能力)
选择get和post的建议
1.如果要传输大量数据譬如文件上传 只能用post
2.get的安全比post差一些如果包含机密/敏感信息建议用post
3.如果是增长、修改、删除数据、建议用post
URL:uniform resource locator(统一资源定位符)
通过1个URL、能找到互联网唯一的一个资源
如果是iOS9需要取消对网络的限制,在plist里添加以下代码,适配一下
<key>NSAppTransportSecurity</key> <dict><key>NSAllowsArbitraryLoads</key><true/></dict>
下面是一个简单的get请求实例:
// get 把传输的数据 放在连接地址里面- (void)loadData_5{ NSString *interfaceString = @"http://apis.baidu.com/showapi_open_bus/mobile/find"; NSString *requestContentString = @"num=13370116152"; NSString *urlString = [NSString stringWithFormat:@"%@ ? %@",interfaceString,requestContentString];// 把链接地址字符串 转成 NSUTF8StringEncoding NSURL *url = [NSURL URLWithString:[urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];// 可变请求可以添加请求方式 以及请求的请求头或者更多 (NSTimeInterval) 允许请求的时间 超过时间就不在发送请求 NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:5];// 指定http的请求方式 request.HTTPMethod = @"GET"; NSString *apiKey = @"e7f5ac9e7c42a6c8cb125ee1d7e8779e";// 把apikey 发送给服务器指定的请求头位置 forHTTPHeaderField 需要的Key 是服务器指定的Key [request addValue:apiKey forHTTPHeaderField:@"apikey"]; [NSURLConnection sendAsynchronousRequest:request queue:[[NSOperationQueue alloc]init] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) { NSLog(@"%@",response);// 解析json文件 把data转换json文件 NSDictionary *info = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil]; NSLog(@"%@ %@",info[@"showapi_res_body"][@"city"],info[@"showapi_res_body"][@"name"]); }];}
下面是post请求的一个实例:
// post请求下来的是一个 HTTPBody 需要JSON解析为我们需要的NSData类型- (void)loadData_6{ NSURL *url = [NSURL URLWithString:@"http://www.weihuok.com/customer2/GetService"];// 请求参数 PlatformType 平台类型 NSDictionary *dic = @{@"PlatformType":@"3"}; NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:5]; request.HTTPMethod = @"POST";// dataUsingEncoding:NSUTF8StringEncoding 将字符串直接转化成 NSData 因为 HTTPBody 需要的是 NSData类型 request.HTTPBody = [[NSString stringWithFormat:@"%@",dic]dataUsingEncoding:NSUTF8StringEncoding]; [NSURLConnection sendAsynchronousRequest:request queue:[[NSOperationQueue alloc]init] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) { NSDictionary *info = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil]; NSLog(@"=%@",info); }];}
0 0
- iOS 数据请求 get、post
- iOS中GET 和 POST 数据请求
- iOS AFNetworking请求数据(get/post)
- iOS get post请求
- IOS Get、Post请求
- ios get post请求
- IOS Get、Post请求
- 数据请求get post
- iOS 网络请求数据两种请求方式GET,POST
- IOS-post请求、get请求
- ios之NSURLConnection网络请求数据/GET与POST方法
- ios开发系列之Get与Post方式请求数据
- iOS请求数据两种方式(GET、POST)
- IOS发送POST/GET请求
- [ios]get,post请求 【转】
- iOS 网络请求数据 同步请求、异步请求、GET、POST请求
- iOS 数据请求 同步get 同步post 异步get 异步post
- ajax post&get 请求数据
- Doctrine 2 ORM 事务处理
- 黑马程序员—面向对象知识汇总
- 关于迷宫问题 利用栈实现
- 有关Python的内容
- java 集成开发环境选择对比
- iOS 数据请求 get、post
- Java开发环境的配置(Windows)
- 大道至简:朴素贝叶斯分类器
- 基础-输入输出1
- 利用数组实现大数的阶乘
- [BZOJ1626] [Usaco2007 Dec]Building Roads 修建道路
- git学习笔记 -创建仓库、更新代码
- 动态代理
- 编辑神器sublime中使用Emmet的实例