#进口<基金会/ Foundation.h>
#进口“AFNetworking.h”
#进口“的UIImageView + WebCache.h”
@protocol NetRequestAccessDelegate < NSObject的>
- (无效)downLoadFinishWith :( 放入NSDictionary *)字典;
- (无效)downLoadFailed;
@结束
@interface NetRequestAccess:NSObject的
@属性 (非原子,弱)ID < NetRequestAccessDelegate >委托;
+(NetRequestAccess *)sharedNetRequestAccess;
// 停止下载
- (无效)stopLoadModel;
// 数据上传
- (无效)postUpLoadModel :( 的NSString *)数据urlString :( 的NSString *)urlString;
// 数据下载
- (无效)getDownLoadModel :( 的NSString *)urlString;
// 图片上传
- (无效)imagePostUpLoad :( NSData的*)imgData AndData :( 放入NSDictionary *)数据UrlString :( 的NSString *)网址;
// 多图上传
- (无效)imagePostUpLoad :( NSArray的*)imgDataArr AndData :( 放入NSDictionary *)数据urlString :( 的NSString *)网址;
@结束
#进口“NetRequestAccess.h”
@implementation NetRequestAccess
@synthesize 委托= _delegate ;
静态 NetRequestAccess * _sharedNetRequestAccess;
+(NetRequestAccess *)sharedNetRequestAccess {
如果(!_sharedNetRequestAccess ){
_sharedNetRequestAccess = [[ NetRequestAccessALLOC ] INIT ]
}
返回_sharedNetRequestAccess ;
}
- (无效){stopLoadModel
AFHTTPRequestOperationManager *经理= [ AFHTTPRequestOperationManager经理]
[经理。operationQueuecancelAllOperations ];
}
- (无效)getDownLoadModel :( 的NSString *)urlString {
[ 自我stopLoadModel ];
NSURL * URL = [ NSURLURLWithString :[urlString stringByAddingPercentEscapesUsingEncoding :NSUTF8StringEncoding ]];
的NSURLRequest *请求= [ 的NSURLRequestrequestWithURL :URL];
AFHTTPRequestOperation *操作= [[ AFHTTPRequestOperationALLOC ] initWithRequest :请求];
[操作setCompletionBlockWithSuccess :^(AFHTTPRequestOperation *操作,ID responseObject){
的NSString * HTML =操作。responseString ;
的NSData *数据= [HTML dataUsingEncoding :NSUTF8StringEncoding ];
NSError *误差= 零;
ID 字典= [ NSJSONSerializationJSONObjectWithData :数据选项:NSJSONReadingMutableContainers错误:错误]
的NSLog(@“ 获取的数据-----%@”,字典);
[ _delegatedownLoadFinishWith :字典]
} 失败:^(AFHTTPRequestOperation *操作,NSError *错误){
[ _delegatedownLoadFailed ];
的NSLog (@“ 失败:----%@” ,错误);
}];
NSOperationQueue *队列= [[ NSOperationQueueALLOC ] INIT ]
[队列addOperation :操作]。
}
- (无效)postUpLoadModel :( 的NSString *)数据urlString :( 的NSString *)urlString {
NSURL * URL = [ NSURLURLWithString :[urlString stringByAddingPercentEscapesUsingEncoding :NSUTF8StringEncoding ]];
NSMutableURLRequest *请求= [[ NSMutableURLRequestALLOC ] initWithURL :URL];
[要求setHTTPMethod :@“POST” ];
NSData的* XMLDATA = [数据dataUsingEncoding :NSUTF8StringEncoding ];
[要求setHTTPBody :XMLDATA];
AFHTTPRequestOperation *操作= [[ AFHTTPRequestOperationALLOC ] initWithRequest :请求];
[操作setCompletionBlockWithSuccess :^(AFHTTPRequestOperation *操作,ID responseObject){
的NSString * HTML =操作。responseString ;
的NSData *数据= [HTML dataUsingEncoding :NSUTF8StringEncoding ];
NSError *误差= 零;
ID 字典= [ NSJSONSerializationJSONObjectWithData :数据选项:NSJSONReadingMutableContainers错误:错误]
的NSLog(@“ 成功:---%@“,字典);
[ _delegatedownLoadFinishWith :字典]
} 失败:^(AFHTTPRequestOperation *操作,NSError *错误){
[ _delegatedownLoadFailed ];
的NSLog (@“ 失败:----%@” ,错误);
}];
[操作开始]。
}
- (无效)imagePostUpLoad :( NSData的*)imgData AndData :( 放入NSDictionary *)数据UrlString :( 的NSString *)网址{
NSMutableURLRequest *请求= [[ AFHTTPRequestSerializer串行] multipartFormRequestWithMethod :@“POST”URLString :URL 参数:数据constructingBodyWithBlock :^(ID < AFMultipartFormData > FORMDATA){
NSDateFormatter *格式化= [[ NSDateFormatterALLOC ] INIT ]
。格式DATEFORMAT = @“YYYYMMDDHHMMSS” ;
的NSString *海峡= [格式化stringFromDate :[ NSDate的日期]];
的NSString *文件名= [ 的NSStringstringWithFormat :@“%@ JPG” ,STR]
// 上传图片,以文件流的格式
[FORMDATA appendPartWithFileData :imgData 名:@“阿凡达”文件名:文件名mime类型:@“图像/ PNG” ];
} 错误:零]
AFHTTPRequestOperation * OPER = [[ AFHTTPRequestOperationALLOC ] initWithRequest :请求];
[OPER setCompletionBlockWithSuccess :^(AFHTTPRequestOperation *操作,ID responseObject){
的NSString * HTML =操作。responseString ;
的NSData *数据= [HTML dataUsingEncoding :NSUTF8StringEncoding ];
ID 字典= [ NSJSONSerializationJSONObjectWithData :数据选项:0错误:零]
的NSLog (@“ 成功:%@” ,字典);
[ _delegatedownLoadFinishWith :字典]
} 失败:^(AFHTTPRequestOperation *操作,NSError *错误){
的NSLog (@“ 失败-----%@” ,错误);
[ _delegatedownLoadFailed ];
}];
[OPER 开始]。
}
- (无效)imagePostUpLoad :( NSArray的*)imgDataArr AndData :( 放入NSDictionary *)数据urlString :( 的NSString *)网址
{
NSMutableURLRequest *请求= [[ AFHTTPRequestSerializer串行] multipartFormRequestWithMethod :@“POST”URLString :URL 参数:数据constructingBodyWithBlock :^(ID < AFMultipartFormData > FORMDATA){
对于(NSInteger的I = 0 ;我<imgDataArr。算上,我++){
NSData的*为imageData = [imgDataArr objectAtIndex :i];
NSDateFormatter *格式化= [[ NSDateFormatterALLOC ] INIT ]
。格式DATEFORMAT = @“YYYYMMDDHHMMSS” ;
的NSString *海峡= [格式化stringFromDate :[ NSDate的日期]];
的NSString *文件名= [ 的NSStringstringWithFormat :@“%@ PNG” ,STR]
// 上传图片,以文件流的格式
[FORMDATA appendPartWithFileData :为imageData 名:@“阿凡达”文件名:文件名mime类型:@“图像/ PNG” ];
}
} 错误:零]
AFHTTPRequestOperation * OPER = [[ AFHTTPRequestOperationALLOC ] initWithRequest :请求];
[OPER setCompletionBlockWithSuccess :^(AFHTTPRequestOperation *操作,ID responseObject){
的NSString * HTML =操作。responseString ;
的NSData *数据= [HTML dataUsingEncoding :NSUTF8StringEncoding ];
ID 字典= [ NSJSONSerializationJSONObjectWithData :数据选项:0错误:零]
的NSLog (@“ 成功:%@” ,字典);
[ _delegatedownLoadFinishWith :字典]
} 失败:^(AFHTTPRequestOperation *操作,NSError *错误){
的NSLog (@“ 失败-----%@” ,错误);
[ _delegatedownLoadFailed ];
}];
[OPER 开始]。
}
@结束