使用通用NSObject
类调用 WS 与AFNetworking 3.0
这是我的重复答案,但它已更新为 AFNetworking 3.0
首先在这里使用任何名称创建类NSObject
我正在创建名称为Webservice.h和Webservice.m的类NSObject
网络服务.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
确保您必须用成功和
消息替换您的字典键以处理响应回调函数
像这样使用从任何viewcontroller.m调用这个通用方法 和从 any 调用任何方法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
}];
}
在上述方法中添加您的参数、值和 Web 服务 URL。你可以很容易地使用这个NSObjcet
类。有关详细信息,请访问AFNetworking 3.0或我对 AFNetworking 2.0 的旧回答。