99 lines
4.2 KiB
Objective-C
99 lines
4.2 KiB
Objective-C
//
|
|
// TCLiveRequestManager.m
|
|
// TRTC
|
|
//
|
|
// Created by Tencent on 2018/5/31.
|
|
// Copyright © 2018年 Tencent. All rights reserved.
|
|
//
|
|
|
|
#import "TCLiveRequestManager.h"
|
|
#import "UIToastView.h"
|
|
#import "TCLiveConfigDefine.h"
|
|
@implementation TCLiveRequestManager
|
|
+ (TCLiveRequestManager *)getInstance{
|
|
static TCLiveRequestManager *singleTon = nil;
|
|
static dispatch_once_t onceToken;
|
|
dispatch_once(&onceToken, ^{
|
|
singleTon = [TCLiveRequestManager new];
|
|
});
|
|
return singleTon;
|
|
}
|
|
|
|
- (void)requestLoginInfo:(LiveLoginInfoBlock)block{
|
|
NSString *user = [[NSUserDefaults standardUserDefaults] objectForKey:@"TCLIVE_USER"];
|
|
if (user.length == 0) {
|
|
user = @"";
|
|
}
|
|
NSDictionary *params = @{@"userID":user};
|
|
NSMutableURLRequest *request = [self getSendPostRequest:Login_Info_Url body:params];//加备注
|
|
|
|
NSURLSessionConfiguration *sessionConfig = [NSURLSessionConfiguration defaultSessionConfiguration];
|
|
[sessionConfig setTimeoutIntervalForRequest:30];
|
|
|
|
__weak TCLiveRequestManager *weakself = self;
|
|
NSURLSession *session = [NSURLSession sessionWithConfiguration:sessionConfig];
|
|
NSURLSessionDataTask *task = [session dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
|
|
if (error|| data == nil) {
|
|
block(-1);
|
|
[[UIToastView getInstance] showToastWithMessage:@"登录请求失败" toastMode:UIToastShowMode_fail];
|
|
}
|
|
else{
|
|
//无error data解不出
|
|
NSDictionary *info = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
|
|
if (info) {
|
|
weakself.sdkAppID = [info[@"sdkAppID"] intValue];
|
|
weakself.accountType = [info[@"accountType"]intValue];
|
|
weakself.userID = info[@"userID"];
|
|
weakself.userSig = info[@"userSig"];
|
|
[[NSUserDefaults standardUserDefaults] setObject:info[@"userID"] forKey:@"TCLIVE_USER"];
|
|
block(0);
|
|
}
|
|
else{
|
|
block(-1);
|
|
[[UIToastView getInstance] showToastWithMessage:@"登录信息解包失败" toastMode:UIToastShowMode_fail];
|
|
}
|
|
}
|
|
}];
|
|
[task resume];
|
|
}
|
|
|
|
-(void)reqGetAuthBufferInfoWithParams:(NSDictionary *)params block:(LiveAuthBufferBlock)block{
|
|
NSMutableURLRequest *request = [self getSendPostRequest:AuthBuffer_Info_Url body:params];
|
|
|
|
NSURLSessionConfiguration *sessionConfig = [NSURLSessionConfiguration defaultSessionConfiguration];
|
|
[sessionConfig setTimeoutIntervalForRequest:30];
|
|
|
|
NSURLSession *session = [NSURLSession sessionWithConfiguration:sessionConfig];
|
|
NSURLSessionDataTask *task = [session dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
|
|
if (error|| data == nil) {
|
|
[[UIToastView getInstance] showToastWithMessage:@"获取authBuffer请求失败" toastMode:UIToastShowMode_fail];
|
|
}
|
|
else{
|
|
//无error data解不出
|
|
NSDictionary *info = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
|
|
if (info) {
|
|
block(info);
|
|
}
|
|
else{
|
|
[[UIToastView getInstance] showToastWithMessage:@"获取authBuffer解包失败" toastMode:UIToastShowMode_fail];
|
|
}
|
|
}
|
|
}];
|
|
[task resume];
|
|
}
|
|
|
|
- (NSMutableURLRequest *)getSendPostRequest:(NSString *)url body:(NSDictionary *)body{
|
|
|
|
NSData *dataBody = [NSJSONSerialization dataWithJSONObject:body options:NSJSONWritingPrettyPrinted error:nil];
|
|
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:url] cachePolicy:NSURLRequestReloadIgnoringLocalAndRemoteCacheData timeoutInterval:10];
|
|
[request setValue:[NSString stringWithFormat:@"%ld", (long) [dataBody length]] forHTTPHeaderField:@"Content-Length"];
|
|
[request setHTTPMethod:@"POST"];
|
|
[request setValue:@"application/json; charset=UTF-8" forHTTPHeaderField:@"Content-Type"];
|
|
[request setValue:@"gzip" forHTTPHeaderField:@"Accept-Encoding"];
|
|
[request setHTTPBody:dataBody];
|
|
|
|
return request;
|
|
}
|
|
@end
|
|
|