zoukankan      html  css  js  c++  java
  • ios中网络请求缓存

    #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];
    }
  • 相关阅读:
    JAVA向上转型和向下转型
    LeetCode记录之9——Palindrome Number
    LeetCode记录之7——Reverse Integer
    JAVA数据结构--插入排序
    JAVA数据结构--选择排序
    JAVA数据结构--冒泡排序
    HTTP协议04-返回状态码
    HTTP协议03-http特点及请求方式
    HTTP协议02-请求和响应的报文构成
    HTTP笔记01-http相关的基础知识
  • 原文地址:https://www.cnblogs.com/gcb999/p/3226569.html
Copyright © 2011-2022 走看看