1.      同步GET请求
  2.  
  3.     //第一步,创建URL
  4.  
  5.     NSURL *url = [NSURL URLWithString:@"http://api.hudong.com/iphonexml.do?type=focus-c"];
  6.  
  7.      
  8.  
  9.     //第二步,通过URL创建网络请求
  10.  
  11.     NSURLRequest *request = [[NSURLRequest alloc]initWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:];
  12.  
  13.     //NSURLRequest初始化方法第一个参数:请求访问路径,第二个参数:缓存协议,第三个参数:网络请求超时时间(秒)
  14.  
  15.       其中缓存协议是个枚举类型包含:
  16.  
  17.       NSURLRequestUseProtocolCachePolicy(基础策略)
  18.  
  19.       NSURLRequestReloadIgnoringLocalCacheData(忽略本地缓存)
  20.  
  21.       NSURLRequestReturnCacheDataElseLoad(首先使用缓存,如果没有本地缓存,才从原地址下载)
  22.  
  23.       NSURLRequestReturnCacheDataDontLoad(使用本地缓存,从不下载,如果本地没有缓存,则请求失败,此策略多用于离线操作)
  24.  
  25.       NSURLRequestReloadIgnoringLocalAndRemoteCacheData(无视任何缓存策略,无论是本地的还是远程的,总是从原地址重新下载)
  26.  
  27.       NSURLRequestReloadRevalidatingCacheData(如果本地缓存是有效的则不下载,其他任何情况都从原地址重新下载)
  28.  
  29.     //第三步,连接服务器
  30.  
  31.     NSData *received = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
  32.  
  33.      
  34.  
  35.     NSString *str = [[NSString alloc]initWithData:received encoding:NSUTF8StringEncoding];
  36.  
  37.      
  38.  
  39.     NSLog(@"%@",str);
  40.  
  41. 、同步POST请求
  42.  
  43.     //第一步,创建URL
  44.  
  45.     NSURL *url = [NSURL URLWithString:@"http://api.hudong.com/iphonexml.do"];
  46.  
  47.     //第二步,创建请求
  48.  
  49.     NSMutableURLRequest *request = [[NSMutableURLRequest alloc]initWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:];
  50.  
  51.     [request setHTTPMethod:@"POST"];//设置请求方式为POST,默认为GET
  52.  
  53.     NSString *str = @"type=focus-c";//设置参数
  54.  
  55.     NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding];
  56.  
  57.     [request setHTTPBody:data];
  58.  
  59.     //第三步,连接服务器
  60.  
  61.      
  62.  
  63.     NSData *received = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
  64.  
  65.      
  66.  
  67.     NSString *str1 = [[NSString alloc]initWithData:received encoding:NSUTF8StringEncoding];
  68.  
  69.      
  70.  
  71.     NSLog(@"%@",str1);
  72. 、异步GET请求
  73.  
  74.     //第一步,创建url
  75.  
  76.     NSURL *url = [NSURL URLWithString:@"http://api.hudong.com/iphonexml.do?type=focus-c"];
  77.  
  78.     //第二步,创建请求
  79.  
  80.     NSURLRequest *request = [[NSURLRequest alloc]initWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:];
  81.  
  82.     //第三步,连接服务器
  83.  
  84.     NSURLConnection *connection = [[NSURLConnection alloc]initWithRequest:request delegate:self];
  85. 、异步POST请求
  86.  
  87.     //第一步,创建url
  88.  
  89.     NSURL *url = [NSURL URLWithString:@"http://api.hudong.com/iphonexml.do"];
  90.  
  91.     //第二步,创建请求
  92.  
  93.     NSMutableURLRequest *request = [[NSMutableURLRequest alloc]initWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:];
  94.  
  95.     [request setHTTPMethod:@"POST"];
  96.  
  97.     NSString *str = @"type=focus-c";
  98.  
  99.     NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding];
  100.  
  101.     [request setHTTPBody:data];
  102.  
  103.     //第三步,连接服务器
  104.  
  105.     NSURLConnection *connection = [[NSURLConnection alloc]initWithRequest:request delegate:self];
  106.  
  107. 、异步请求的代理方法
  108.  
  109. //接收到服务器回应的时候调用此方法
  110.  
  111. - (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
  112.  
  113. {
  114.  
  115.     NSHTTPURLResponse *res = (NSHTTPURLResponse *)response;
  116.  
  117.     NSLog(@"%@",[res allHeaderFields]);
  118.  
  119.     self.receiveData = [NSMutableData data];                           
  120.  
  121. }
  122.  
  123. //接收到服务器传输数据的时候调用,此方法根据数据大小执行若干次
  124.  
  125. -(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
  126.  
  127. {
  128.  
  129.     [self.receiveData appendData:data];
  130.  
  131. }
  132.  
  133. //数据传完之后调用此方法
  134.  
  135. -(void)connectionDidFinishLoading:(NSURLConnection *)connection
  136.  
  137. {
  138.  
  139.     NSString *receiveStr = [[NSString alloc]initWithData:self.receiveData encoding:NSUTF8StringEncoding];
  140.  
  141.     NSLog(@"%@",receiveStr);
  142.  
  143. }
  144.  
  145. //网络请求过程中,出现任何错误(断网,连接超时等)会进入此方法
  146.  
  147. -(void)connection:(NSURLConnection *)connection
  148.  
  149.  didFailWithError:(NSError *)error
  150.  
  151. {
  152.  
  153.     NSLog(@"%@",[error localizedDescription]);
  154.  
  155. }

iOS 原生网络请求(推荐使用AFNetWorking库)的更多相关文章

  1. ios htttp网络请求cookie的读取与写入(NSHTTPCookieStorage)

    当你访问一个网站时,NSURLRequest都会帮你主动记录下来你访问的站点设置的Cookie,如果 Cookie 存在的话,会把这些信息放在 NSHTTPCookieStorage 容器中共享,当你 ...

  2. iOS - ASIHTTPRequest 网络请求

    前言 使用 iOS SDK 中的 HTTP 网络请求 API,相当的复杂,调用很繁琐,ASIHTTPRequest 就是一个对 CFNetwork API 进行了封装,并且使用起来非常简单的一套 AP ...

  3. iOS - Alamofire 网络请求

    前言 Alamofire 是 Swift 语言的 HTTP 网络开发工具包,相当于 Swift 实现 AFNetworking 版本.当然,AFNetworking 非常稳定,在 Mac OSX 与 ...

  4. iOS开发网络请求——大文件的多线程断点下载

    iOS开发中网络请求技术已经是移动app必备技术,而网络中文件传输就是其中重点了.网络文件传输对移动客户端而言主要分为文件的上传和下载.作为开发者从技术角度会将文件分为小文件和大文件.小文件因为文件大 ...

  5. iOS - NSURLSession 网络请求

    前言 NS_CLASS_AVAILABLE(NSURLSESSION_AVAILABLE, 7_0) @interface NSURLSession : NSObject @available(iOS ...

  6. 原生网络请求以及AFN网络请求/异步下载

    这里对网络请求方式做一个总结. 原生方式同步GET请求: NSString *urlStr = @"http://apis.juhe.cn/mobile/get?phone=13429667 ...

  7. iOS之网络请求NSURLSession剖析

    2013年的WWDC大会上,苹果推出了NSURLSession,对Foundation URL加载系统进行了彻底的重构,提供了更丰富的API来处理网络请求,如:支持http2.0协议.直接把数据下载到 ...

  8. iOS之网络请求及各类错误代码含义总结(包含AFN错误码大全)

    转自http://blog.csdn.net/wangyanchang21/article/details/50932191 在很多时候都会遇到错误, 还会带有一些 Error Code , 比如在各 ...

  9. iOS - NSURLConnection 网络请求

    前言 @interface NSURLConnection : NSObject class NSURLConnection : NSObject DEPRECATED: The NSURLConne ...

随机推荐

  1. iOS中UITableView的一些设置

    不可滑动: ? 1 tableView.userInteractionEnabled = NO; 也可以在storyboard中的userInteractionEnable属性设置 显示导向箭头: ? ...

  2. 3ds max输出图片

    通过渲染菜单调出改窗口,然后调整成这种模式,就能渲染出这种效果的图. 可以调背景色: 全局照明:染色,这个控制的是渲染物体的颜色

  3. endnote设置文献第二行悬挂缩进办法

    参考:http://blog.sina.com.cn/s/blog_62b13cf201014lfr.html  使用[endnote]插入文献后,如果文献稍长些,有第二行,第二行会顶格开始.并且这个 ...

  4. Struts2拦截器之FileUploadInterceptor

    一.它能做什么? 借助于这个拦截器我们可以实现文件的上传和下载功能. 理论部分: struts2的文件上传下载功能也要依赖于Apache commons-fileupload和Apache commo ...

  5. NYOJ题目1047欧几里得

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAskAAAIcCAIAAACLpKQmAAAgAElEQVR4nO3dv1LjOsMH4O8m6LkQ6l ...

  6. NYOJ之括号配对问题

    括号配对问题 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描述     现在,有一行括号序列,请你检查这行括号是否配对. 输入     第一行输入一个数N(0<N&l ...

  7. mysql列类型

    mysql三大列类型 整型 tinyint(占据空间:1个字节 存储范围  有符号  -128-127   无符号  0-255) smallint   mediumint    int    big ...

  8. Java -- 找不到或无法加载主类

    原文:http://wenku.baidu.com/link?url=5nS1GEaePn-hmtAg6xXdJvtt9Z89JQsakhqSv8fambaJY2t9nKPtf3hXFpjW-BtD9 ...

  9. wireshark使用

    http://jingyan.baidu.com/article/7f41ececede744593c095c79.html

  10. 【转载】 python修饰符@

    @符号在python语言中具有特殊含义,用来作为修饰符使用, @修饰符有点像函数指针,python解释器发现执行的时候如果碰到@修饰的函数,首先就解析它,找到它对应的函数进行调用,并且会把@修饰下面一 ...