DSNetworkTool.h 2.8 KB
//
//  DSNetworkTool.h
//  DreamSleep
//
//  Created by peter on 2022/4/13.
//

// 自定义响应码
typedef NS_ENUM(NSInteger, DSResCode) {
    /// 业务逻辑成功
    DSResCodeSuccess    = 1,
    /// 业务逻辑失败
    DSResCodeFail       = -1,
    /// 网络故障
    DSResCodeNetFail    = -9,
    /// 服务器数据异常
    DSResCodeDataWrong  = -666,
    /// 无更新(自定义状态)
    DSResCodeNoUpdate   = -777,
    /// 服务器内部错误(404等...)
    DSResCodeServerErr  = -888,
};

#import <AFNetworking/AFNetworking-umbrella.h>

/// 网络请求二次封装基类
@interface DSNetworkTool : AFHTTPSessionManager

// 响应状态码
@property (nonatomic, assign) DSResCode resCode;
// 返回的错误信息
@property (nonatomic, copy) NSString *errMessage;

+ (DSNetworkTool *)sharedManager;

/// @param api 请求接口
/// @param params get、post请求统一使用post body
/// @param view view
/// @param hasNetActivity 是否显示网络状态指示器
/// @param loadingInfo 网络加载信息
/// @param hasFailInfo 是否有失败信息
/// @param success success
/// @param failure failure
+ (__kindof NSURLSessionDataTask *)httpPostBodyRequestWithAPI:(NSString *)api
                                                       params:(id)params
                                                         view:(UIView *)view
                                               hasNetActivity:(BOOL)hasNetActivity
                                                  loadingInfo:(NSString *)loadingInfo
                                                  hasFailInfo:(BOOL)hasFailInfo
                                                      success:(void (^)(NSDictionary *apiDic))success
                                                      failure:(void (^)(id failure))failure;

/// 第三方服务商Post请求
/// @param host 第三方主机地址
/// @param params 请求参数
/// @param view view
/// @param hasNetActivity 是否显示网络状态指示器
/// @param loadingInfo 网络加载信息
/// @param hasFailInfo 是否有失败信息
/// @param success success
/// @param failure failure
+ (__kindof NSURLSessionDataTask *)httpVendorPostRequestWithHost:(NSString *)host
                                                          params:(id)params
                                                            view:(UIView *)view
                                                  hasNetActivity:(BOOL)hasNetActivity
                                                     loadingInfo:(NSString *)loadingInfo
                                                     hasFailInfo:(BOOL)hasFailInfo
                                                         success:(void (^)(NSDictionary *responseObj))success
                                                         failure:(void (^)(id failureInfo))failure;

@end