ios同步与异步网络请求

转载 2015年07月10日 09:58:03
  1. 1、同步请求

    Object-c代码  收藏代码
    1. - (void) initRequestData : (RequestVO *) requestParam{  
    2.     NSMutableDictionary *paramDic = [[NSMutableDictionary alloc] init];  
    3.     NSMutableDictionary *directory = [[NSMutableDictionary alloc]init];  
    4.     NSString *paramJson;  
    5.     NSMutableString *urlStr = [[NSMutableString alloc] initWithString:REQUEST_URL];  
    6.     [directory setValue:requestParam.className forKey:@"className"];  
    7.     [directory setValue:requestParam.methodName forKey:@"methodName"];  
    8.     [paramDic setValue:requestParam.specialCode forKey:@"specialCode"];  
    9.     [paramDic setValue:requestParam.start forKey:@"start"];  
    10.     [paramDic setValue:requestParam.end forKey:@"end"];  
    11.     [directory setValue:paramDic forKey:@"parameter"];  
    12.     if ([NSJSONSerialization isValidJSONObject:directory]) {  
    13.         NSError *error ;  
    14.         NSData *jsonData = [NSJSONSerialization dataWithJSONObject:directory options:NSJSONWritingPrettyPrinted error:&error];  
    15.         paramJson =[[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];  
    16.         paramJson = [paramJson stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];  
    17.     }  
    18.     [urlStr appendString:paramJson];  
    19.     NSURL *url = [NSURL URLWithString:urlStr];  
    20.     NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];  
    21.     [request setURL:url];  
    22.     [request setHTTPMethod:@"POST"];  
    23.     NSHTTPURLResponse *response;  
    24.     NSError *error ;  
    25.     NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:nil];  
    26.       
    27.     NSDictionary *dataDictory = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error];  
    28.     NSLog(@"dataDictory : %@",[dataDictory description]);  
    29.     }  
    30. }  

     2、异步请求

    Object-c代码  收藏代码
    1. @interface CatalogViewController : UIViewController<NSURLConnectionDataDelegate>  
    2.   
    3. @property (strong,nonatomic) NSMutableData *receivedData;  
    4. @end  
    5.   
    6.   
    7. //  
    8. //  CatalogViewController.m  
    9. //  IpadLisShow  
    10. //  
    11. //  Created by Dwen on 13-1-21.  
    12. //  Copyright (c) 2013年 Dwen. All rights reserved.  
    13. //  
    14.   
    15. #import "CatalogViewController.h"  
    16. #import <QuartzCore/QuartzCore.h>  
    17. @interface CatalogViewController ()  
    18.   
    19. @end  
    20.   
    21. @implementation CatalogViewController  
    22. @synthesize receivedData;  
    23.   
    24. //初始化请求数据  
    25. - (void) initRequestData : (RequestVO *) requestParam{  
    26.     NSMutableDictionary *paramDic = [[NSMutableDictionary alloc] init];  
    27.     NSMutableDictionary *directory = [[NSMutableDictionary alloc]init];  
    28.     NSString *paramJson;  
    29.     NSMutableString *urlStr = [[NSMutableString alloc] initWithString:REQUEST_URL];  
    30.     [directory setValue:requestParam.className forKey:@"className"];  
    31.     [directory setValue:requestParam.methodName forKey:@"methodName"];  
    32.     [paramDic setValue:requestParam.specialCode forKey:@"specialCode"];  
    33.     [paramDic setValue:requestParam.orderPa forKey:@"orderPa"];  
    34.     [paramDic setValue:requestParam.sort forKey:@"sort"];  
    35.     [paramDic setValue:requestParam.start forKey:@"start"];  
    36.     [paramDic setValue:requestParam.end forKey:@"end"];  
    37.     [directory setValue:paramDic forKey:@"parameter"];  
    38.     NSLog(@"[directory description] :%@",[directory description]);  
    39.     if ([NSJSONSerialization isValidJSONObject:directory]) {  
    40.         NSError *error ;  
    41.         NSData *jsonData = [NSJSONSerialization dataWithJSONObject:directory options:NSJSONWritingPrettyPrinted error:&error];  
    42.         paramJson =[[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];  
    43.         paramJson = [paramJson stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];  
    44.     }  
    45.     [urlStr appendString:paramJson];  
    46.     NSURL *url = [NSURL URLWithString:urlStr];  
    47.     NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];  
    48.     [request setURL:url];  
    49.     [request setHTTPMethod:@"POST"];  
    50.     NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request delegate:self];  
    51.     if (connection) {  
    52.         receivedData = [[NSMutableData alloc] init];  
    53.     }else{  
    54.         UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"提示" message:@"服务器连接异常" delegate:self cancelButtonTitle:@"确定" otherButtonTitles:nil, nil];  
    55.         [alert show];  
    56.     }  
    57. }  
    58.   
    59. #pragma connection  
    60. //接收响应  
    61. - (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response{  
    62.     [receivedData setLength:0];  
    63. }  
    64.   
    65. //接收到数据  
    66. - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data{  
    67.     [receivedData appendData:data];  
    68. }  
    69.   
    70. //数据加载完成  
    71. - (void)connectionDidFinishLoading:(NSURLConnection *)connection{  
    72.     NSError *error ;  
    73.     NSDictionary *dataDictory = [NSJSONSerialization JSONObjectWithData:receivedData options:kNilOptions error:&error];  
    74.     //    NSLog(@"dataDictory : %@",[dataDictory description]);  
    75.     if (NULL != dataDictory) {  
    76.         //拍品信息  
    77.           
    78.     }else{  
    79.         UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"提示" message:@"该拍品无数据" delegate:self cancelButtonTitle:@"确定" otherButtonTitles:nil, nil];  
    80.         [alert show];  
    81.     }  
    82. }  
    83.   
    84. - (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error{  
    85.     NSLog(@"Error : %@",error);  
    86. }  
    87.   
    88. @end  

iOS 同步异步网络请求

  • 2015年04月08日 13:13
  • 33KB
  • 下载

iOS网络请求 post同步异步封装demo

  • 2015年11月18日 22:56
  • 38KB
  • 下载

iOS网络请求GET&POST,同步&异步

//网络编程 //在iOS下面,网络编程主要分为3步 //1.客户端发送请求 //2.建立连接,获取数据 //3.使用数据(根据用户的请...

IOS_网络请求_get+post+同步+异步

H:/0726/01_Get+Post+代理实现_ViewController.h// // ViewController.h // Get & Post Request // // Creat...

iOS开发:网络请求之get、post同步异步请求

网络请求方式: 1、GET: (1)通过网址字符串给服务器传输数据;  (2)网络字符串最多255字节;  (3)所有传输给服务器的数据,显示在网址里,类似于密码的明文输入,直接可见。 2、POST:...

iOS网络请求总结、GET、POST、同步、异步代码块、异步代理、第三方AFNetWorking2.0使用

iOS网络请求总结、GET、POST、同步、异步代码块、异步代理、第三方AFNetWorking2.0使用 首先需要明白, GET跟POST 区别: GET请求,将参数直接写在访问路径上。操作简单,不...

ASI网络请求,同步、异步

requestGoodsWq = [ASIFormDataRequest requestWithURL:goodsInfo_Url]; [requestGoodsWq setRequestMe...

GET POST的同步异步的网络请求

今天开始写博客啦,一开始肯定是不会很完美,希望我能坚持住,同时也希望在写博客的过程中能使自己的技术有所提高。也希望能够结识更多地码农们,我们一起进步,上帝加力量,下面就开始拉哈。 1 get请求 ...

同步异步网络请求封装以及数据JSON解析

同步异步网络请求封装以及数据JSON解析 (Block传值, 协议传值)

42.网络请求POST同步和异步

宏定义地址 和 声明属性Post同步请求异步请求
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ios同步与异步网络请求
举报原因:
原因补充:

(最多只允许输入30个字)