您的位置:首页 > 移动开发 > IOS开发

iOS数据请求之post异步同步

2015-09-18 21:10 453 查看

pragma mark – POST同步请求

(void)actionLeftButton:(UIBarButtonItem *)button

{

// 创建网址对象

NSURL *url = [NSURL URLWithString:@”http://ipad-bjwb.bjd.com.cn/DigitalPublication/publish/Handler/APINewsList.ashx“];

// 利用网址对象创建一个请求

// CachePolicy缓存策略 一般选默认

// timeoutInterval 请求超时时间

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url cachePolicy:(NSURLRequestUseProtocolCachePolicy) timeoutInterval:30.0];

// 设置请求类型

[request setHTTPMethod:@”POST”];

// 注意:给这个请求携带一个请求体

NSData *pramData = [kNewsListParam dataUsingEncoding:NSUTF8StringEncoding]; // 构建一个请求体NSData类型

[request setHTTPBody:pramData];

// 利用这个请求创建一个连接,并得到返回的数据

NSURLResponse *response = nil;

NSError *error = nil;

NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];

// 解析数据

NSMutableDictionary *dataDic = [NSJSONSerialization JSONObjectWithData:data options:(NSJSONReadingMutableContainers) error:nil];

NSLog(@”%@”, dataDic);

}

// POST异步请求

- (void)actionRightButton:(UIBarButtonItem *)button

{

// 利用网址创建网址对象

NSURL *url = [NSURL URLWithString:kNewsListURL];

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url cachePolicy:(NSURLRequestUseProtocolCachePolicy) timeoutInterval:30];

// 设置请求的类型
[request setHTTPMethod:@"POST"];
// 给这个请求携带请求体
NSData *pramData = [kNewsListParam dataUsingEncoding:NSUTF8StringEncoding];
[request setHTTPBody:pramData];

self.connection = [NSURLConnection connectionWithRequest:request delegate:self];


}

pragma mark – 利用请求创建连接,利用代理方法实现异步请求 —

(void)connection:(NSURLConnection )connection didReceiveResponse:(NSURLResponse )response

{

// 初始化data

NSLog(@”返回服务器信息,证明链接成功了”);

}

(void)connection:(NSURLConnection )connection didReceiveData:(NSData )data

{

// 拼接data,可以多次执行

NSLog(@”每点一次便执行一次”);

}

(void)connectionDidFinishLoading:(NSURLConnection *)connection

{

// 解析数据

NSLog(@”加载完成时触发”);

}

// NSURLConnectionDelegate方法

- (void)connection:(NSURLConnection )connection didFailWithError:(NSError )error

{

NSLog(@”请求失败时触发”);

}

// 注意:

判断用get还是post是根据需求来定的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ios 异步 同步-post