对于ASIHTTPRequest的封装

来源:互联网 发布:wifi网络屏蔽了怎么办 编辑:程序博客网 时间:2024/05/07 00:08


#import <Foundation/Foundation.h>#import "ASIFormDataRequest.h"typedef void(^RequestFinishedBlock)(id result);@interface NetService : NSObject+(ASIHTTPRequest*)requestWithURL:(NSString*)urlString params:(NSMutableDictionary*)params httpMethod:(NSString*)httpMethod completeBlock:(RequestFinishedBlock)block;@end


#import "NetService.h"#import "URLConfig.h"#import "commonConfig.h"@implementation NetService+(ASIHTTPRequest*)requestWithURL:(NSString*)urlString params:(NSMutableDictionary*)params httpMethod:(NSString*)httpMethod completeBlock:(RequestFinishedBlock)block{    if ([httpMethod caseInsensitiveCompare:@"POST"] ==NSOrderedSame)    {        NSMutableString *finalurl=[NSMutableString stringWithFormat:@"HOST_URL%@?token=%@&sys=%@",urlString,[commonConfig sharedInstance].token,@"iphone"];        NSURL *url=[NSURL URLWithString:finalurl];        __block ASIFormDataRequest * request=[ASIHTTPRequest requestWithURL:url];        [request setRequestMethod:httpMethod];                NSArray *allkeys=[params allKeys];        for (int i=0; i<[allkeys count]; i++)        {            NSString *key=[allkeys objectAtIndex:i];            id value=[params objectForKey:key];            if ([value isKindOfClass:[NSData class]])            {                //post file                [request addData:value forKey:key];            }else            {                [request addPostValue:value forKey:key];            }        }        [request setCompletionBlock:^{            NSData *data=[request responseData];            id result=[NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];            if (block!=nil) {                block(result);            }        }];        [request startAsynchronous];        return request;    }else if([httpMethod caseInsensitiveCompare:@"GET"]==NSOrderedSame)    {        NSMutableString *paramString=[NSMutableString string];        NSArray *allkeys=[params allKeys];        for (int i=0;i<[allkeys count]; i++)        {            NSString *key=[allkeys objectAtIndex:i];            id value=[params objectForKey:key];            [paramString appendFormat:@"%@=%@&",key,value];        }        [paramString appendFormat:@"token=%@&sys=%@",[commonConfig sharedInstance].token,@"iphone"];        NSMutableString *finalurl=[NSMutableString stringWithFormat:@"%@%@%@",HOST_URL,urlString,paramString];        NSLog(@"%@",finalurl);        NSURL *url=[NSURL URLWithString:finalurl];        __block ASIFormDataRequest *request=[ASIHTTPRequest requestWithURL:url];        [request setRequestMethod:httpMethod];        [request setCompletionBlock:^{            NSData *data=[request responseData];            id result=[NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];            if (block!=nil) {                block(result);            }        }];        [request startAsynchronous];        return request;    }    return nil;}@end

调用方法:

[NetServicerequestWithURL:DOCTOR_LOGINparams:dichttpMethod:@"GET"completeBlock:^(id result)

     {

         NSLog(@"%@",result);

     }];


0 0
原创粉丝点击