清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>
//
// HttpTool.h
// 邦尼医生
//
// Created by peony on 15/7/21.
// Copyright (c) 2015年 com.peony. All rights reserved.
//
#import <Foundation/Foundation.h>
@interface HttpTool : NSObject
/**
* 发送一个GET请求
*
* @param url 请求路径
* @param params 请求参数
* @param success 请求成功后的回调(请将请求成功后想做的事情写到这个block中)
* @param failure 请求失败后的回调(请将请求失败后想做的事情写到这个block中)
*/
+ (void)get:(NSString *)url params:(NSDictionary *)params success:(void (^)(id json))success failure:(void (^)(NSError *error))failure;
/**
* 发送一个POST请求
*
* @param url 请求路径
* @param params 请求参数
* @param success 请求成功后的回调(请将请求成功后想做的事情写到这个block中)
* @param failure 请求失败后的回调(请将请求失败后想做的事情写到这个block中)
*/
+ (void)post:(NSString *)url params:(NSDictionary *)params success:(void (^)(id json))success failure:(void (^)(NSError *error))failure;
/**
* 发送一个POST请求
*
* @param url 请求路径
* @param params 请求参数
* @param formData 文件参数
* @param success 请求成功后的回调(请将请求成功后想做的事情写到这个block中)
* @param failure 请求失败后的回调(请将请求失败后想做的事情写到这个block中)
*/
+ (void)post:(NSString *)url params:(NSDictionary *)params formDataArray:(NSArray *)formDataArray success:(void (^)(id json))success failure:(void (^)(NSError *error))failure;
@end
/**
* 用来封装文件数据的模型
*/
@interface FormData : NSObject
/**
* 文件数据
*/
@property(nonatomic,strong)NSData * data;
/**
* 参数名
*/
@property(nonatomic,copy)NSString * name;
/**
* 文件名
*/
@property(nonatomic,copy)NSString * filename;
/**
* 文件类型
*/
@property(nonatomic,copy)NSString * mimeType;
@end
//
// HttpTool.m
// 邦尼医生
//
// Created by peony on 15/7/21.
// Copyright (c) 2015年 com.peony. All rights reserved.
//
#import "HttpTool.h"
#import "AFNetworking.h"
@implementation HttpTool
+ (void)get:(NSString *)url params:(NSDictionary *)params success:(void (^)(id))success failure:(void (^)(NSError *))failure
{
AFSecurityPolicy *policy = [[AFSecurityPolicy alloc] init];
[policy setAllowInvalidCertificates:YES];
// 1.获得请求管理者
AFHTTPRequestOperationManager * mgr = [AFHTTPRequestOperationManager manager];
// 2.发送GET请求
[mgr setSecurityPolicy:policy];
mgr.requestSerializer = [AFJSONRequestSerializer serializer];
mgr.responseSerializer = [AFJSONResponseSerializer serializer];
[mgr GET:url parameters:params
success:^(AFHTTPRequestOperation *operation, id responseObj) {
if (success) {
success(responseObj);
}
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
if (failure) {
failure(error);
}
}];
}
+ (void)post:(NSString *)url params:(NSDictionary *)params success:(void (^)(id))success failure:(void (^)(NSError *))failure
{
AFSecurityPolicy *policy = [[AFSecurityPolicy alloc] init];
[policy setAllowInvalidCertificates:YES];
// 1.获得请求管理者
AFHTTPRequestOperationManager *mgr = [AFHTTPRequestOperationManager manager];
[mgr setSecurityPolicy:policy];
mgr.requestSerializer = [AFJSONRequestSerializer serializer];
mgr.responseSerializer = [AFJSONResponseSerializer serializer];
// 2.发送POST请求
[mgr POST:url parameters:params
success:^(AFHTTPRequestOperation *operation, id responseObj) {
if (success) {
success(responseObj);
}
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
if (failure) {
failure(error);
}
}];
}
/**
* 上传文件请求
*/
+ (void)post:(NSString *)url params:(NSDictionary *)params dataSource:(FormData *)dataSource success:(void (^)(id))success failure:(void (^)(NSError *))failure{
// 1.获得请求管理者
AFHTTPRequestOperationManager * mgr = [AFHTTPRequestOperationManager manager];
[mgr POST:url parameters:params constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
[formData appendPartWithFileData:dataSource.data name:dataSource.name fileName:dataSource.filename mimeType:dataSource.mimeType];
} success:^(AFHTTPRequestOperation *operation, id responseObject) {
if (success) {
success(responseObject);
}
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
if (failure) {
failure(error);
}
}];
}
@end
/**
* 用来封装文件数据的模型
*/
@implementation FormData
@end