ios同步与异步网络请求
来源:互联网 发布:网络优化工程师 怎么样 编辑:程序博客网 时间:2024/04/27 22:14
1、同步请求
- - (void) initRequestData : (RequestVO *) requestParam{
- NSMutableDictionary *paramDic = [[NSMutableDictionary alloc] init];
- NSMutableDictionary *directory = [[NSMutableDictionary alloc]init];
- NSString *paramJson;
- NSMutableString *urlStr = [[NSMutableString alloc] initWithString:REQUEST_URL];
- [directory setValue:requestParam.className forKey:@"className"];
- [directory setValue:requestParam.methodName forKey:@"methodName"];
- [paramDic setValue:requestParam.specialCode forKey:@"specialCode"];
- [paramDic setValue:requestParam.start forKey:@"start"];
- [paramDic setValue:requestParam.end forKey:@"end"];
- [directory setValue:paramDic forKey:@"parameter"];
- if ([NSJSONSerialization isValidJSONObject:directory]) {
- NSError *error ;
- NSData *jsonData = [NSJSONSerialization dataWithJSONObject:directory options:NSJSONWritingPrettyPrinted error:&error];
- paramJson =[[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
- paramJson = [paramJson stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
- }
- [urlStr appendString:paramJson];
- NSURL *url = [NSURL URLWithString:urlStr];
- NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
- [request setURL:url];
- [request setHTTPMethod:@"POST"];
- NSHTTPURLResponse *response;
- NSError *error ;
- NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:nil];
- NSDictionary *dataDictory = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error];
- NSLog(@"dataDictory : %@",[dataDictory description]);
- }
- }
2、异步请求
- @interface CatalogViewController : UIViewController<NSURLConnectionDataDelegate>
- @property (strong,nonatomic) NSMutableData *receivedData;
- @end
- //
- // CatalogViewController.m
- // IpadLisShow
- //
- // Created by Dwen on 13-1-21.
- // Copyright (c) 2013年 Dwen. All rights reserved.
- //
- #import "CatalogViewController.h"
- #import <QuartzCore/QuartzCore.h>
- @interface CatalogViewController ()
- @end
- @implementation CatalogViewController
- @synthesize receivedData;
- //初始化请求数据
- - (void) initRequestData : (RequestVO *) requestParam{
- NSMutableDictionary *paramDic = [[NSMutableDictionary alloc] init];
- NSMutableDictionary *directory = [[NSMutableDictionary alloc]init];
- NSString *paramJson;
- NSMutableString *urlStr = [[NSMutableString alloc] initWithString:REQUEST_URL];
- [directory setValue:requestParam.className forKey:@"className"];
- [directory setValue:requestParam.methodName forKey:@"methodName"];
- [paramDic setValue:requestParam.specialCode forKey:@"specialCode"];
- [paramDic setValue:requestParam.orderPa forKey:@"orderPa"];
- [paramDic setValue:requestParam.sort forKey:@"sort"];
- [paramDic setValue:requestParam.start forKey:@"start"];
- [paramDic setValue:requestParam.end forKey:@"end"];
- [directory setValue:paramDic forKey:@"parameter"];
- NSLog(@"[directory description] :%@",[directory description]);
- if ([NSJSONSerialization isValidJSONObject:directory]) {
- NSError *error ;
- NSData *jsonData = [NSJSONSerialization dataWithJSONObject:directory options:NSJSONWritingPrettyPrinted error:&error];
- paramJson =[[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
- paramJson = [paramJson stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
- }
- [urlStr appendString:paramJson];
- NSURL *url = [NSURL URLWithString:urlStr];
- NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
- [request setURL:url];
- [request setHTTPMethod:@"POST"];
- NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request delegate:self];
- if (connection) {
- receivedData = [[NSMutableData alloc] init];
- }else{
- UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"提示" message:@"服务器连接异常" delegate:self cancelButtonTitle:@"确定" otherButtonTitles:nil, nil];
- [alert show];
- }
- }
- #pragma connection
- //接收响应
- - (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response{
- [receivedData setLength:0];
- }
- //接收到数据
- - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data{
- [receivedData appendData:data];
- }
- //数据加载完成
- - (void)connectionDidFinishLoading:(NSURLConnection *)connection{
- NSError *error ;
- NSDictionary *dataDictory = [NSJSONSerialization JSONObjectWithData:receivedData options:kNilOptions error:&error];
- // NSLog(@"dataDictory : %@",[dataDictory description]);
- if (NULL != dataDictory) {
- //拍品信息
- }else{
- UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"提示" message:@"该拍品无数据" delegate:self cancelButtonTitle:@"确定" otherButtonTitles:nil, nil];
- [alert show];
- }
- }
- - (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error{
- NSLog(@"Error : %@",error);
- }
- @end
0 0
- ios同步与异步网络请求
- ios同步、异步请求网络
- iOS-网络-同步请求、异步请求、GET请求、POST请求
- iOS网络基础--发送同步、异步请求
- iOS网络请求GET&POST,同步&异步
- 同步/异步网络请求
- 网络请求同步异步
- iOS开发:网络请求之get、post同步异步请求
- 网络请求 IOS 同步请求 异步请求、GET请求 POST请求
- 【读书笔记】iOS网络-同步请求,队列式异步请求,异步请求的区别
- ios 网络编程之同步,异步,请求队列
- iOS网络编程之同步、异步、请求队…
- iOS网络编程之同步、异步、请求队列
- IOS开发之NSURL网络请求,同步异步,GET,POST
- iOS网络编程之同步、异步、请求队列
- iOS网络开发中的同步、异步和请求队列
- iOS网络开发中的同步、异步和请求队列
- iOS 网络编程(HTTP 同步GET请求,同步POST请求,异步GET请求,异步POST请求)
- 给app重新签名
- Eclipse -- An API baseline has not been set for the current workspace
- 准确取得当前滚动条的位置
- Linux下暴力破解工具Hydra详解
- 用VMware安装LINUX无网络环境解决方案
- ios同步与异步网络请求
- [VS2012]VS在解决方案中的一个或多个项目由于以下原因未能加载的解决方法
- 牛人整理分享的面试知识:操作系统、计算机网络、设计模式、Linux编程,数据结构总结
- HTML单选框多选框(根据name获取值和根据值显示结果)
- PHP获取当前类名、函数名、方法名
- vb.net 操作Access数据库帮助类
- nodejs 安装 express 遇到的问题及解决方法
- Java线程(一):线程安全与不安全
- 专访李林锋:我与Netty那些不得不说的事