// // NetworkManager.m // HC // // Created by huilinLi on 2025/12/15. // #import "NetworkManager.h" #import static NSString * const kBaseURL = @"https://hwjb.homilychart.com/dev/"; //static NSString * const kBaseURL = @"https://dbqb.legu168.cn/testApi/"; @interface NetworkManager () @property (nonatomic, strong) AFHTTPSessionManager *sessionManager; @end @implementation NetworkManager + (instancetype)sharedManager { static NetworkManager *instance; static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ instance = [[NetworkManager alloc] init]; }); return instance; } - (instancetype)init { self = [super init]; if (self) { // 初始化 AFNetworking _sessionManager = [[AFHTTPSessionManager alloc] initWithBaseURL:[NSURL URLWithString:kBaseURL]]; // 配置请求序列化 (通常是 JSON) _sessionManager.requestSerializer = [AFJSONRequestSerializer serializer]; _sessionManager.requestSerializer.timeoutInterval = 30.f; // 超时时间 // 配置响应序列化 (自动解析 JSON) _sessionManager.responseSerializer = [AFJSONResponseSerializer serializer]; // 这里可以配置公共 Header,例如 Token // [_sessionManager.requestSerializer setValue:@"Bearer token..." forHTTPHeaderField:@"Authorization"]; // 支持的 Content-Types _sessionManager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"application/json", @"text/json", @"text/javascript", @"text/html", nil]; } return self; } - (void)GET:(NSString *)url params:(NSDictionary *)params success:(SuccessBlock)success failure:(FailureBlock)failure { [self.sessionManager GET:url parameters:params headers:nil progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) { if (success) { success(responseObject); } } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) { if (failure) { // 这里可以做统一的错误处理,比如打印日志,或者处理 401 Token 过期 NSLog(@"Request Failed: %@", error); failure(error); } }]; } - (void)POST:(NSString *)url params:(NSDictionary *)params success:(SuccessBlock)success failure:(FailureBlock)failure { [self.sessionManager POST:url parameters:params headers:nil progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) { if (success) { success(responseObject); } } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) { if (failure) { NSLog(@"Request Failed: %@", error); failure(error); } }]; } @end