对于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
- 对于ASIHTTPRequest的封装
- 对ASIHTTPRequest的封装
- 对ASIHTTPRequest的封装
- ASIHTTPRequest的封装
- 基于ASIHTTPRequest封装的HttpClient
- 基于ASIHTTPRequest封装的MyHttpRequest
- ASIHTTPRequest 封装
- ASIHttpRequest封装
- ASIHTTPRequest的使用——封装
- 对于分页的封装类
- 转:对于封装的理解
- 对于Socket的简易封装
- linux对于互斥器的封装
- 对于继承封装的理解
- iOS ASIHTTPRequest对于加入的库以及错误信息详解
- iOS ASIHttpRequest 封装
- iOS疯狂详解之ASIHttpRequest的简单封装
- ASIHTTPRequest的使用——ASIFormDataRequest(自定义封装类)
- SQL 创建约束
- 灰度共生矩阵opencv2下的实现
- sae上部署django+mysql
- VLC 无法播放视频
- 文件偷渡---文件写入图片
- 对于ASIHTTPRequest的封装
- OpenGL中的混色正确步骤
- 人狼羊菜
- Copy-On-Write 写时复制原理
- 利用Hibernate3.6.10进行CRUD操作
- Android Camera 照相和录像
- VC++MFC 窗口最大化
- 用netBeans创建web配置文件
- 约瑟夫问题(单链表)