iOS 原生网络请求(推荐使用AFNetWorking库)
- 、 同步GET请求
- //第一步,创建URL
- NSURL *url = [NSURL URLWithString:@"http://api.hudong.com/iphonexml.do?type=focus-c"];
- //第二步,通过URL创建网络请求
- NSURLRequest *request = [[NSURLRequest alloc]initWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:];
- //NSURLRequest初始化方法第一个参数:请求访问路径,第二个参数:缓存协议,第三个参数:网络请求超时时间(秒)
- 其中缓存协议是个枚举类型包含:
- NSURLRequestUseProtocolCachePolicy(基础策略)
- NSURLRequestReloadIgnoringLocalCacheData(忽略本地缓存)
- NSURLRequestReturnCacheDataElseLoad(首先使用缓存,如果没有本地缓存,才从原地址下载)
- NSURLRequestReturnCacheDataDontLoad(使用本地缓存,从不下载,如果本地没有缓存,则请求失败,此策略多用于离线操作)
- NSURLRequestReloadIgnoringLocalAndRemoteCacheData(无视任何缓存策略,无论是本地的还是远程的,总是从原地址重新下载)
- NSURLRequestReloadRevalidatingCacheData(如果本地缓存是有效的则不下载,其他任何情况都从原地址重新下载)
- //第三步,连接服务器
- NSData *received = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
- NSString *str = [[NSString alloc]initWithData:received encoding:NSUTF8StringEncoding];
- NSLog(@"%@",str);
- 、同步POST请求
- //第一步,创建URL
- NSURL *url = [NSURL URLWithString:@"http://api.hudong.com/iphonexml.do"];
- //第二步,创建请求
- NSMutableURLRequest *request = [[NSMutableURLRequest alloc]initWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:];
- [request setHTTPMethod:@"POST"];//设置请求方式为POST,默认为GET
- NSString *str = @"type=focus-c";//设置参数
- NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding];
- [request setHTTPBody:data];
- //第三步,连接服务器
- NSData *received = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
- NSString *str1 = [[NSString alloc]initWithData:received encoding:NSUTF8StringEncoding];
- NSLog(@"%@",str1);
- 、异步GET请求
- //第一步,创建url
- NSURL *url = [NSURL URLWithString:@"http://api.hudong.com/iphonexml.do?type=focus-c"];
- //第二步,创建请求
- NSURLRequest *request = [[NSURLRequest alloc]initWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:];
- //第三步,连接服务器
- NSURLConnection *connection = [[NSURLConnection alloc]initWithRequest:request delegate:self];
- 、异步POST请求
- //第一步,创建url
- NSURL *url = [NSURL URLWithString:@"http://api.hudong.com/iphonexml.do"];
- //第二步,创建请求
- NSMutableURLRequest *request = [[NSMutableURLRequest alloc]initWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:];
- [request setHTTPMethod:@"POST"];
- NSString *str = @"type=focus-c";
- NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding];
- [request setHTTPBody:data];
- //第三步,连接服务器
- NSURLConnection *connection = [[NSURLConnection alloc]initWithRequest:request delegate:self];
- 、异步请求的代理方法
- //接收到服务器回应的时候调用此方法
- - (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
- {
- NSHTTPURLResponse *res = (NSHTTPURLResponse *)response;
- NSLog(@"%@",[res allHeaderFields]);
- self.receiveData = [NSMutableData data];
- }
- //接收到服务器传输数据的时候调用,此方法根据数据大小执行若干次
- -(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
- {
- [self.receiveData appendData:data];
- }
- //数据传完之后调用此方法
- -(void)connectionDidFinishLoading:(NSURLConnection *)connection
- {
- NSString *receiveStr = [[NSString alloc]initWithData:self.receiveData encoding:NSUTF8StringEncoding];
- NSLog(@"%@",receiveStr);
- }
- //网络请求过程中,出现任何错误(断网,连接超时等)会进入此方法
- -(void)connection:(NSURLConnection *)connection
- didFailWithError:(NSError *)error
- {
- NSLog(@"%@",[error localizedDescription]);
- }
iOS 原生网络请求(推荐使用AFNetWorking库)的更多相关文章
- ios htttp网络请求cookie的读取与写入(NSHTTPCookieStorage)
当你访问一个网站时,NSURLRequest都会帮你主动记录下来你访问的站点设置的Cookie,如果 Cookie 存在的话,会把这些信息放在 NSHTTPCookieStorage 容器中共享,当你 ...
- iOS - ASIHTTPRequest 网络请求
前言 使用 iOS SDK 中的 HTTP 网络请求 API,相当的复杂,调用很繁琐,ASIHTTPRequest 就是一个对 CFNetwork API 进行了封装,并且使用起来非常简单的一套 AP ...
- iOS - Alamofire 网络请求
前言 Alamofire 是 Swift 语言的 HTTP 网络开发工具包,相当于 Swift 实现 AFNetworking 版本.当然,AFNetworking 非常稳定,在 Mac OSX 与 ...
- iOS开发网络请求——大文件的多线程断点下载
iOS开发中网络请求技术已经是移动app必备技术,而网络中文件传输就是其中重点了.网络文件传输对移动客户端而言主要分为文件的上传和下载.作为开发者从技术角度会将文件分为小文件和大文件.小文件因为文件大 ...
- iOS - NSURLSession 网络请求
前言 NS_CLASS_AVAILABLE(NSURLSESSION_AVAILABLE, 7_0) @interface NSURLSession : NSObject @available(iOS ...
- 原生网络请求以及AFN网络请求/异步下载
这里对网络请求方式做一个总结. 原生方式同步GET请求: NSString *urlStr = @"http://apis.juhe.cn/mobile/get?phone=13429667 ...
- iOS之网络请求NSURLSession剖析
2013年的WWDC大会上,苹果推出了NSURLSession,对Foundation URL加载系统进行了彻底的重构,提供了更丰富的API来处理网络请求,如:支持http2.0协议.直接把数据下载到 ...
- iOS之网络请求及各类错误代码含义总结(包含AFN错误码大全)
转自http://blog.csdn.net/wangyanchang21/article/details/50932191 在很多时候都会遇到错误, 还会带有一些 Error Code , 比如在各 ...
- iOS - NSURLConnection 网络请求
前言 @interface NSURLConnection : NSObject class NSURLConnection : NSObject DEPRECATED: The NSURLConne ...
随机推荐
- iOS中UITableView的一些设置
不可滑动: ? 1 tableView.userInteractionEnabled = NO; 也可以在storyboard中的userInteractionEnable属性设置 显示导向箭头: ? ...
- 3ds max输出图片
通过渲染菜单调出改窗口,然后调整成这种模式,就能渲染出这种效果的图. 可以调背景色: 全局照明:染色,这个控制的是渲染物体的颜色
- endnote设置文献第二行悬挂缩进办法
参考:http://blog.sina.com.cn/s/blog_62b13cf201014lfr.html 使用[endnote]插入文献后,如果文献稍长些,有第二行,第二行会顶格开始.并且这个 ...
- Struts2拦截器之FileUploadInterceptor
一.它能做什么? 借助于这个拦截器我们可以实现文件的上传和下载功能. 理论部分: struts2的文件上传下载功能也要依赖于Apache commons-fileupload和Apache commo ...
- NYOJ题目1047欧几里得
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAskAAAIcCAIAAACLpKQmAAAgAElEQVR4nO3dv1LjOsMH4O8m6LkQ6l ...
- NYOJ之括号配对问题
括号配对问题 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 现在,有一行括号序列,请你检查这行括号是否配对. 输入 第一行输入一个数N(0<N&l ...
- mysql列类型
mysql三大列类型 整型 tinyint(占据空间:1个字节 存储范围 有符号 -128-127 无符号 0-255) smallint mediumint int big ...
- Java -- 找不到或无法加载主类
原文:http://wenku.baidu.com/link?url=5nS1GEaePn-hmtAg6xXdJvtt9Z89JQsakhqSv8fambaJY2t9nKPtf3hXFpjW-BtD9 ...
- wireshark使用
http://jingyan.baidu.com/article/7f41ececede744593c095c79.html
- 【转载】 python修饰符@
@符号在python语言中具有特殊含义,用来作为修饰符使用, @修饰符有点像函数指针,python解释器发现执行的时候如果碰到@修饰的函数,首先就解析它,找到它对应的函数进行调用,并且会把@修饰下面一 ...