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是根据需求来定的。
相关文章推荐
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- ruby实现的一个异步文件下载HttpServer实例
- C#异步绑定数据实现方法
- 科学知识:同步、异步、阻塞和非阻塞区别
- 探讨Ajax中同步与异步之间的区别
- C#中异步回调函数用法实例
- C#实现异步GET的方法
- C#异步执行任务的方法
- 深入理解JavaScript编程中的同步与异步机制
- Jquery异步提交表单代码分享
- JQuery异步获取返回值中文乱码的解决方法
- Node.js 的异步 IO 性能探讨
- Ajax异步(请求)提交类 支持跨域
- Ajax异步请求JSon数据(图文详解)