ios中网络请求缓存
2013-07-30 21:38 甘超波 阅读(1512) 评论(0) 编辑 收藏 举报#import <Foundation/Foundation.h> #import "ASIFormDataRequest.h" @protocol NetWorkdelegate; @interface JSNetWork : NSObject<ASIHTTPRequestDelegate> +(JSNetWork *)shareNetWork; -(void)JsNetWordWithConnectId:(int)connectid Body:(NSString *)body PostBody:(NSString *)PostBody Delegate:(id<NetWorkdelegate>)delegate; @end @protocol NetWorkdelegate <NSObject> -(void)NetWorkwithConnectId:(int)connectid backstring:(NSString *)aback; @end @implementation JSNetWork +(JSNetWork *)shareNetWork{ static dispatch_once_t onceToken; static JSNetWork *netWork=nil; dispatch_once(&onceToken, ^{ netWork=[[JSNetWork alloc] init]; }); return netWork; } #pragma mark -request -(void)JsNetWordWithConnectId:(int)connectid Body:(NSString *)body PostBody:(NSString *)PostBody Delegate:(id<NetWorkdelegate>)delegate{ if (![self Isconnect]) { UIAlertView *alertview=[[UIAlertView alloc] initWithTitle:nil message:@"not work" delegate:self cancelButtonTitle:@"ok" otherButtonTitles: nil]; [alertview show]; [alertview release]; return; } ASIFormDataRequest *request=[ASIFormDataRequest requestWithURL:[NSURL URLWithString:body]]; request.timeOutSeconds=30; request.delegate=self; request.requestMethod=@"POST"; NSArray *Bodyarry=[PostBody componentsSeparatedByString:@"&"]; for(NSString *tmp in Bodyarry){ NSArray *temparrary=[tmp componentsSeparatedByString:@"="]; [request setPostValue:temparrary[1] forKey:temparrary[0]]; } NSString *cid=[NSString stringWithFormat:@"%zi",connectid]; NSDictionary *dic=@{@"connectid":cid,@"delegate":delegate}; [request setUserInfo:dic]; [request startAsynchronous]; } -(void)requestFinished:(ASIHTTPRequest *)request{ NSDictionary *userinfo=request.userInfo; int connectid=[userinfo[@"connectid"] intValue]; id<NetWorkdelegate> delegate=userinfo[@"delegate"]; NSString *str=[request responseString]; [delegate NetWorkwithConnectId:connectid backstring:str]; } -(void)requestFailed:(ASIHTTPRequest *)request{ } -(BOOL)Isconnect{ BOOL iscon=NO; Reachability *r=[Reachability reachabilityWithHostName:@"www.baidu.com"]; switch ([r currentReachabilityStatus]) { case NotReachable: NSLog(@"not network"); iscon=NO; break; case ReachableViaWiFi: NSLog(@"wifi"); iscon=YES; break; case ReachableViaWWAN: NSLog(@"3g"); iscon=YES; break; default: break; } return iscon; } @end
- (void)viewDidLoad { [super viewDidLoad]; [[JSNetWork shareNetWork] JsNetWordWithConnectId:100 Body:@"http://www.baidu.com" PostBody:nil Delegate:self]; // Do any additional setup after loading the view, typically from a nib. NSString *path=[NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject]; path=[path stringByAppendingPathComponent:@"1.plist"]; NSString *str=[NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil]; if(str.length>0) [self NetWorkwithConnectId:100 backstring:str]; } -(void)NetWorkwithConnectId:(int)connectid backstring:(NSString *)aback{ self.txt.text=aback; [self Save:aback]; } -(void)Save:(NSString *)str{ NSString *path=[NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject]; path=[path stringByAppendingPathComponent:@"1.plist"]; [str writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:nil]; } - (void)dealloc { [_txt release]; [super dealloc]; }
目前我正在专注NLP,请立刻加微信/QQ号 546611623, 免费送你原创《NLP高级执行师》高清视频