ios中网络请求缓存

2016/03/26 15:41
阅读数 2

///////////////////////////////////////////////////////////////////////////


.h文件

#import <Foundation/Foundation.h>

#import "ASIFormDataRequest.h"


@protocol NetWorkdelegate <NSObject>


- (void)NetWorkwithConnectId:(int)connectid backstring:(NSString *)aback;


@end


@interface JSNetWork : NSObject <ASIHTTPRequestDelegate>


+ (JSNetWork *)shareNetWork;


- (void)JsNetWordWithConnectId:(int)connectid Body:(NSString *)body PostBody:(NSString *)PostBody Delegate:(id<NetWorkdelegate>)delegate;


@end



.m文件

@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)dealloc

{

    [_txt release];

    [super dealloc];

}


- (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];

}


///////////////////////////////////////////////////////////////////////////


展开阅读全文
打赏
1
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
1
分享
返回顶部
顶部