Files
yuyin_ios/SweetParty/主类/Others/NewTools/AFNetworkRequset.m
2025-08-08 11:05:33 +08:00

96 lines
3.6 KiB
Objective-C
Executable File

//
// AFNetworkRequset.m
// JiushiMarking
//
// Created by 小收 on 2019/8/16.
// Copyright © 2019 小收. All rights reserved.
//
#import "AFNetworkRequset.h"
#import "MainNavigationController.h"
#import "HelpPageDefine.h"
@interface AFNetworkRequset()
{
BOOL netWorkStatus;
}
@end
@implementation AFNetworkRequset
+ (instancetype)shared{
static AFNetworkRequset *networkRequest = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
networkRequest = [[AFNetworkRequset alloc]init];
});
return networkRequest;
}
- (void)postRequestWithParams:(nullable NSDictionary *)params Path:(NSString *)path Loading:(BOOL)loading Hud:(BOOL)showHud Success:(void(^)(id responseDic))success Failure:(void(^)(id errorData))failure {
if (loading) {
[SVProgressHUD show];
}
NSString *fullUrl = [NSString stringWithFormat:@"%@%@", VERSION_HTTPS_SERVER, path];
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
NSMutableURLRequest *request = [[AFJSONRequestSerializer serializer] requestWithMethod:@"POST" URLString:fullUrl parameters:nil error:nil];
request.timeoutInterval = 10;
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
//新增验签
NSString *timestamp = [BJEncryptionTool getNowTimeTimestamp];
NSString *app_sign = [BJEncryptionTool getSignWith:timestamp];
[request setValue:C_string(timestamp) forHTTPHeaderField:@"timestamp"];
[request setValue:C_string(app_sign) forHTTPHeaderField:@"app-sign"];
NSMutableDictionary *mDict = [NSMutableDictionary dictionaryWithDictionary:params];
if (GVUSER.token.length > 0) {
[mDict setValue:GVUSER.token forKey:@"login_token"];
}
if (mDict != nil) {
[request setHTTPBody:mDict.mj_JSONData];
}
manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"text/html", @"text/plain", @"application/json", @"text/json", @"text/javascript", nil];
NSLog(@"请求参数: %@", mDict);
NSLog(@"请求地址: %@", fullUrl);
[[manager dataTaskWithRequest:request uploadProgress:^(NSProgress * _Nonnull uploadProgress) {
} downloadProgress:^(NSProgress * _Nonnull downloadProgress) {
} completionHandler:^(NSURLResponse * _Nonnull response, id _Nullable responseObject, NSError * _Nullable error) {
[SVProgressHUD dismiss];
NSLog(@"请求结果: %@", responseObject);
if (responseObject) {
NSString *code = [NSString stringWithFormat:@"%@", responseObject[@"code"]];
if ([code isEqualToString:@"200"]) {
if ([responseObject[@"data"] isKindOfClass:[NSNull class]]) {
success(@{});
}else {
success(responseObject);
}
if (showHud == YES && responseObject[@"msg"] != nil ){
[HelpPageDefine showMessage:responseObject[@"msg"]];
}
} else {
NSError *error = [NSError errorWithDomain:@"" code:1000 userInfo:nil];
failure(error);
if (responseObject[@"msg"] != nil){
[HelpPageDefine showMessage:responseObject[@"msg"]];
}
if ([responseObject[@"code"] integerValue] == 301) {
// token失效
[HelpPageDefine showMessage:@"登录失效,请重新登录"];
[APPDELEGATE setupLoginViewController];
}
}
}else {
[HelpPageDefine showMessage:@"请求失败"];
NSLog(@"请求错误: %@", error);
}
}] resume];
}
@end