使用常见的NSObject 类调用带有 AFNetworking 3.0 的 WS
这是我的重复答案,但它是使用 AFNetworking 3.0 更新的
首先在这里使用任何名称创建NSObject 类我正在创建名称为 Webservice.h 和 Webservice.m
的
NSObject 类
Webservice.h
@interface Webservice : NSObject
+ (void)requestPostUrl:(NSString *)strURL parameters:(NSDictionary *)dictParams success:(void (^)(NSDictionary *responce))success failure:(void (^)(NSError *error))failure;
@end
Webservice.m 你的 nsobject.m 文件是这样的。(在 .m 文件中添加两个函数)
#import "Webservice.h"
#define kDefaultErrorCode 12345
@implementation Webservice
+ (void)requestPostUrl:(NSString *)strURL parameters:(NSDictionary *)dictParams success:(void (^)(NSDictionary *responce))success failure:(void (^)(NSError *error))failure {
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
[manager setResponseSerializer:[AFHTTPResponseSerializer serializer]];
[manager POST:strURL parameters:dictParams progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
if([responseObject isKindOfClass:[NSDictionary class]]) {
if(success) {
success(responseObject);
}
}
else {
NSDictionary *response = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingAllowFragments error:nil];
if(success) {
success(response);
}
}
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
if(failure) {
failure(error);
}
}];
}
@end
确保你必须用 success 替换你的字典键并且
消息用于处理响应回调函数
像这样使用从任何 viewcontroller.m 和任何 viewControllers 中调用任何方法。对于临时我使用viewDidLoad 来调用这个WS。
- (void)viewDidLoad {
[super viewDidLoad];
NSDictionary *dictParam = @{@"parameter1":@"value1",@"parameter1":@"value2"};
[Webservice requestPostUrl:@"add your webservice URL here" parameters:dictParam success:^(NSDictionary *responce) {
//Success
NSLog(@"responce:%@",responce);
//do code here
} failure:^(NSError *error) {
//error
}];
}
在上述方法中添加您的参数、值和网络服务 URL。你可以很容易地使用这个NSObjcet 类。更多详情请访问AFNetworking 3.0或my old answear with AFNetworking 2.0。