AFNetworking简单应用

王朝学院·作者佚名  2016-08-27
窄屏简体版  字體: 小  |  中  |  大  |  超大  

最近最学习 AFNetworking ,根据自己所学对 AFNetWorking 一些简单应用做了一下简单封装,主要有 get,post形式获取xml,json,get 方式获取图片,下载文件,上传文件,代码如下:

1//2//AFNetWorking_Demo.h3//AFNetWorking_Demo4//5//Created by Ager on 15/11/4.6//Copyright © 2015年 Ager. All rights reserved.7//89#import<Foundation/Foundation.h>1011@interfaceAFNetWorking_Demo : NSObject121314/**15* get 方法请求 xml16* block success 参数类型 NSXMLParser17*/18+ (void)requestXML_GET:(NSString*)strUrl success:(void(^)(idXMLParser))success fail:(void(^)(iderror))fail;1920/**21* post 方法请求 xml22* block success 参数类型 NSXMLParser23*/24+ (void)requestXML_POST:(NSString*)strUrl parameters:(NSString*)parameters success:(void(^)(idXMLParser))success fail:(void(^)(iderror))fail;2526/**27* get 方法请求 JSON28* block success 参数类型为解析好的 JSON 数据 , 字典或数组29*/30+ (void)requestJSON_GET:(NSString*)strUrl success:(void(^)(idjson))success fail:(void(^)(iderror))fail;3132/**33* post 方法请求 JSON34* block success 参数类型为解析好的 JSON 数据 , 字典或数组35*/36+ (void)requestJSON_POST:(NSString*)strUrl parameters:(NSDictionary*)parameters success:(void(^)(idjson))success fail:(void(^)(iderror))fail;373839/**40* get 方法请求 img41*/42+ (void)requestIMG_GET:(NSString*)strUrl success:(void(^)(idimage))success fail:(void(^)(iderror))fail;4344/**45* 下载文件46*47* @param urlStr 要下载文件的路径48*/49+ (void)sessionDownloadWithUrl:(NSString *)urlStr success:(void(^)(NSURL *fileURL))success fail:(void(^)())fail;5051/**52* 上传文件53*54* @param urlStr 上传网址地址55* @param filePath 要上传的文件沙盒路径56*/57+ (void)upLoad:(NSString*)urlStr filePath:(NSString *)filePath success:(void(^)(idresponSEObject))success fail:(void(^)())fail;5859@end

AFNetWorking_Demo.h

1//2//AFNetWorking_Demo.m3//AFNetWorking_Demo4//5//Created by Ager on 15/11/4.6//Copyright © 2015年 Ager. All rights reserved.7//89#import"AFNetWorking_Demo.h"10#import"AFNetworking.h"1112@implementationAFNetWorking_Demo131415/**16* get 方法请求 xml17*/18+ (void)requestXML_GET:(NSString*)strUrl success:(void(^)(idXMLParser))success fail:(void(^)(iderror))fail{1920AFHTTPRequestOperationManager *mamager =[AFHTTPRequestOperationManager manager];2122mamager.responseSerializer =[[AFXMLParserResponseSerializer alloc]init];2324[mamager GET:strUrl parameters:nil success:^(AFHTTPRequestOperation *operation,idresponseObject) {2526success(responseObject);2728} failure:^(AFHTTPRequestOperation *operation, NSError *error) {2930fail(error);3132}];3334}35363738/**39* post 方法请求 xml40*41* parameters 为 JSON 数据类型42*/43+ (void)requestXML_POST:(NSString*)strUrl parameters:(NSString*)parameters success:(void(^)(idXMLParser))success fail:(void(^)(iderror))fail{4445AFHTTPRequestOperationManager *maneger =[AFHTTPRequestOperationManager manager];46//设置请求格式47maneger.requestSerializer =[[AFJSONRequestSerializer alloc]init];48//设置返回数据格式49maneger.responseSerializer =[[AFXMLParserResponseSerializer alloc]init];505152[maneger POST:strUrl parameters:parameters success:^(AFHTTPRequestOperation *operation,idresponseObject) {53success(responseObject);54} failure:^(AFHTTPRequestOperation *operation, NSError *error) {55fail(error);56}];57}5859/**60* get 方法请求 json61*/62+ (void)requestJSON_GET:(NSString*)strUrl success:(void(^)(idjson))success fail:(void(^)(iderror))fail{6364AFHTTPRequestOperationManager *mamager =[AFHTTPRequestOperationManager manager];6566mamager.responseSerializer =[[AFJSONResponseSerializer alloc]init];6768mamager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"application/json",@"text/plain",@"text/html",nil];6970[mamager GET:strUrl parameters:nil success:^(AFHTTPRequestOperation *operation,idresponseObject) {7172success(responseObject);7374} failure:^(AFHTTPRequestOperation *operation, NSError *error) {7576fail(error);7778}];7980}8182838485+ (void)requestIMG_GET:(NSString*)strUrl success:(void(^)(idimage))success fail:(void(^)(iderror))fail{86AFHTTPRequestOperationManager *manager =[AFHTTPRequestOperationManager manager];8788manager.responseSerializer =[[AFImageResponseSerializer alloc]init];8990[manager GET:strUrl parameters:nil success:^(AFHTTPRequestOperation *operation,idresponseObject) {91if(success) {92success(responseObject);93}94} failure:^(AFHTTPRequestOperation *operation, NSError *error) {95if(fail) {96fail(error);97}98}];99}100101/**102* 文件下载103*/104+ (void)sessionDownloadWithUrl:(NSString *)urlStr success:(void(^)(NSURL *fileURL))success fail:(void(^)())fail105{106107AFURLSessionManager *manage =[[AFURLSessionManager alloc]initWithSessionConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]];108109//设置 request110NSURLRequest *request =[NSURLRequest requestWithURL:[NSURL URLWithString:urlStr]];111//设置下载任务112NSURLSessionDownloadTask *tast = [manage downloadTaskWithRequest:request progress:nil destination:^NSURL *(NSURL *targetPath, NSURLResponse *response) {113//指定文件下载路径114//将下载文件保存在缓存路径中115116NSString *path = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES)[0];117NSString *filePath =[path stringByAppendingString:response.suggestedFilename];118119//URLWithString返回的是网络的URL,如果使用本地URL,需要注意120NSURL *url =[NSURL fileURLWithPath:filePath];121122if(success) {123success(url);124}125returnurl;126127} completionHandler:^(NSURLResponse *response, NSURL *filePath, NSError *error) {128NSLog(@"%@---- %@", filePath, error);129if(error) {130fail();131}132}];133134[tast resume];135}136137/**138* 文件上传139* block success 参数类型为解析好的 JSON 数据 , 字典或数组140*/141+ (void)upLoad:(NSString*)urlStr filePath:(NSString *)filePath success:(void(^)(idresponseObject))success fail:(void(^)())fail{142143AFURLSessionManager *manager =[[AFURLSessionManager alloc]initWithSessionConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]];144NSURLRequest *request =[NSURLRequest requestWithURL:[NSURL URLWithString:urlStr]];145146NSURLSessionUploadTask *task = [manager uploadTaskWithRequest:request fromFile:[NSURL fileURLWithPath:filePath] progress:nil completionHandler:^(NSURLResponse *response,idresponseObject, NSError *error) {147if(error) {148fail();149}else{150success(responseObject);151}152}];153[task resume];154155156}157158/**159* POST - 请求JSON160* 需要导入 UIKit+AFNetworking161*/162+ (void)requestJSON_POST:(NSString*)strUrl parameters:(NSDictionary*)parameters success:(void(^)(idjson))success fail:(void(^)(iderror))fail{163164AFHTTPRequestOperationManager *maneger =[AFHTTPRequestOperationManager manager];165//设置请求格式166maneger.requestSerializer =[[AFHTTPRequestSerializer alloc]init];167//设置返回数据格式168maneger.responseSerializer =[[AFJSONResponseSerializer alloc]init];169170maneger.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"application/json",@"text/plain",@"text/html",nil];171172[maneger POST:strUrl parameters:parameters success:^(AFHTTPRequestOperation *operation,idresponseObject) {173success(responseObject);174} failure:^(AFHTTPRequestOperation *operation, NSError *error) {175fail(error);176}];177}178179180@end

AFNetWorking_Demo.m

AFNetworking-2.6.1.zip下载

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航