赵伟笔记一

笔记一:判断是get或者是post方法(需要SBJson框架,ASIFormDataRequest框架

pch中

#define NSURLDATA(__url__) [NSURL URLWithString:__url__]


#import "ModelData.h"

#import "JSON.h"

#import "AppDelegate.h"

@class AppDelegate;

@implementation ModelData


+ (void)getinit:(NSString *)url dictionaryParams:(NSDictionary *)params finishBlock:(finishCompletion)finishBlock failedBlock:(failedCompletion)faiedBlock

{

    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_LOW,0), ^{

        [selfstartRequest:paramsurl:urlisGet:NOfinishBlock:finishBlockfailedBlock:faiedBlock];

    });

}

+ (void)getinit:(NSString *)url finishBlock:(finishCompletion)finishBlock failedBlock:(failedCompletion)faiedBlock

{

    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_LOW,0), ^{

        [selfstartRequest:nilurl:urlisGet:YESfinishBlock:finishBlockfailedBlock:faiedBlock];

    });

}



+ (void)startRequest:(NSDictionary *)params url:(NSString *)urlstring isGet:(BOOL)isGet finishBlock:(finishCompletion)finishBlock failedBlock:(failedCompletion)faiedBlock

{

    

    //获取全局变量

    AppDelegate *appDelegate = (AppDelegate *)[[UIApplicationsharedApplication]delegate];

    

//    NSLog(@"==%@",urlstring);

  __weakASIFormDataRequest *requestData = [ASIFormDataRequestrequestWithURL:NSURLDATA(urlstring)];//链接网页

    [requestDatasetTimeOutSeconds:12];//设置请求超时时间

    [requestData setCacheStoragePolicy:ASICachePermanentlyCacheStoragePolicy];//永久存储方式

    [requestData setCachePolicy:ASIFallbackToCacheIfLoadFailsCachePolicy];

    //登录不成功就撤销

    [requestDatasetDownloadCache:appDelegate.myCache];

    //下载缓存

    [requestDatasetTimeOutSeconds:12];

    [requestData setNumberOfTimesToRetryOnTimeout:3];//设置请求超时时,设置重试的次数

    

   if (isGet) {

        [requestDatasetRequestMethod:@"GET"];

    }else {

        [requestDatasetRequestMethod:@"POST"];

       for (int i =0 ; i < [paramscount] ; i++){

           NSString *key = [paramsallKeys][i];

            [requestDataaddPostValue:params[key]forKey:key];

        }

    }


    requestData.completionBlock = ^{

        

       NSData *data = [requestDataresponseData];

        NSString *response = [[NSStringalloc]initWithData:dataencoding:NSUTF8StringEncoding];

        

       NSLog(@"解析成功==%@",response);

       NSDictionary *ret = [responseJSONValue];


        dispatch_async(dispatch_get_main_queue(), ^{

            finishBlock(ret);

            //判断返回的数据是否来自本地缓存

           if (requestData.didUseCachedResponse) {

               NSLog(@"使用缓存数据");

            }else {

               NSLog(@"请求网络数据");

            }

        });


    };

    

    requestData.failedBlock = ^{

//        NSLog(@"网络请求错误:%@",[requestData error]);

        dispatch_async(dispatch_get_main_queue(), ^{

            faiedBlock([requestDataerror]);

        });

    };

    

    [requestDatastartAsynchronous];

}






使用:

- (void)loadInitData{

    [selfloading:@"正在加载"];//风火轮

    [ModelDatagetinit:[NSStringstringWithFormat:initUrl,firstUrl]finishBlock:^(NSDictionary *finishData) {//(判断网址是getpost方法)

       if ([finishData[@"success_code"]intValue] == 200) {

            [product_FClassListaddObjectsFromArray:finishData[@"success_message"][@"productFClassList"]];

            [headersetValue:finishData[@"success_message"][@"ad_list"]forKey:@"listModel"];

            [footersetValue:product_FClassListforKey:@"listModel"];

        }

        [selfloadhidden:0.];

    }failedBlock:^(NSError *error) {

        [selfloadhidden:0.];

        [[TKAlertCenterdefaultCenter] postAlertWithMessage:@"加载失败,请重试!"];

    }];

}


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值