ASIHTTPRequest的使用——网络请求缓存

///

.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];
}


///


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

番薯大佬

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值