#import <AFNetworking/AFNetworking.h>
#import <ReactiveObjC/ReactiveObjC.h>
@interface MSHTTPRequest : AFHTTPSessionManager
+ (instancetype _Nonnull)shareInstace;
- (RACSignal * _Nonnull)POST:(NSString * _Nonnull)URLString parameters:(NSDictionary * _Nullable)parameters;
@end
#import "MSHTTPRequest.h"
static id _instace;
@implementation MSHTTPRequest
+ (instancetype)allocWithZone:(struct _NSZone *)zone {
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        _instace = [super allocWithZone:zone];
    });
    return _instace;
}
+ (instancetype)shareInstace {
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        _instace = [[self alloc] initWithBaseURL:nil];
    });
    return _instace;
}
- (id)copyWithZone:(NSZone *)zone {
    return _instace;
}
- (RACSignal * _Nonnull)POST:(NSString * _Nonnull)URLString parameters:(NSDictionary * _Nullable)parameters {
    return [RACSignal createSignal:^RACDisposable * _Nullable(id<RACSubscriber>  _Nonnull subscriber) {
        [self POST:URLString parameters:parameters progress:^(NSProgress * _Nonnull uploadProgress) {
            
        } success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
            [subscriber sendNext:responseObject];
            [subscriber sendCompleted];
        } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
            [subscriber sendError:error];
        }];
        return nil;
    }];
}
@end
[[[MSHTTPRequest shareInstace] POST:@"url" parameters:nil] subscribeNext:^(id  _Nullable x) {
    NSLog(@"%@", x);
} error:^(NSError * _Nullable error) {
    NSLog(@"%@", error);
}];
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。