| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168 |
- //
- // YRNetworkManager.m
- // UU_Ent
- //
- // Created by liujl on 2019/6/4.
- // Copyright © 2019 UAS. All rights reserved.
- //
- #import "YRNetworkManager.h"
- @interface YRNetworkManager()
- @property(strong,nonatomic)AFHTTPSessionManager *manager;
- @end
- @implementation YRNetworkManager
- +(instancetype)shareManager{
-
- static YRNetworkManager *instance = nil;
-
- static dispatch_once_t onceToken;
- dispatch_once(&onceToken, ^{
-
- instance = [[YRNetworkManager alloc]init];
-
- });
-
- instance.manager = [AFHTTPSessionManager manager];
-
- instance.manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"application/json", @"text/json", @"text/javascript",@"text/html",@"text/plain",@"charset=UTF-8", nil];
-
- /*由于有三种接口:B2B,ERP,IM,所以这两句需要的在外面自定义*/
- // manager.requestSerializer = [AFJSONRequestSerializer serializer];
- // manager.responseSerializer = [AFJSONResponseSerializer serializer];
-
- [instance.manager.securityPolicy setAllowInvalidCertificates:YES];
- [instance.manager.requestSerializer setValue:@"application/x-www-form-urlencoded;charset=utf8" forHTTPHeaderField:@"Content-Type"];
-
- // [instance.manager.requestSerializer setValue:FORMAT(@"%@",g_sessionUser) forHTTPHeaderField:@"sessionUser"];
-
- [instance.manager.requestSerializer setValue:[NSString stringWithFormat:@"JSESSIONID=%@",[[NSUserDefaults standardUserDefaults] objectForKey:@"sessionId"]] forHTTPHeaderField:@"Cookie"];
-
- [instance.manager.requestSerializer willChangeValueForKey:@"timeoutInterval"];
- instance.manager.requestSerializer.timeoutInterval = 15.0f;
- [instance.manager.requestSerializer didChangeValueForKey:@"timeoutInterval"];
-
- return instance;
-
- }
- +(instancetype)b2bShareManager{
-
- return [self new];
-
- }
- +(void)checkNetWork{
-
- AFNetworkReachabilityManager *manage = [AFNetworkReachabilityManager sharedManager];
-
- [manage setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
- if (status == AFNetworkReachabilityStatusNotReachable) {//没有网络的情况
-
-
- [[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"netWorkStatus"];
-
-
- }else{
-
- [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"netWorkStatus"];
-
-
- }
-
- [[NSNotificationCenter defaultCenter] postNotificationName:kAFReachabilityChangedNotification object:nil userInfo:@{@"status":@(status)}];
-
- }];
-
-
- [manage startMonitoring];
-
- }
- /**
- 发起请求
-
- @param url url
- @param type 发起请求的方式
- @param parameters 参数
- @param uploadProgress 进度
- @param success 成功回调
- @param failure 失败回调
- */
- -(NSURLSessionDataTask *)request:(NSString *)url method:(requestType)type parameters:(id)parameters progress:(void(^)(NSProgress *uploadProgress))uploadProgress success:(void(^)(NSURLSessionDataTask *task,id responseObject))success failure:(void(^)(NSURLSessionDataTask *task,NSError *error))failure{
-
- if (type == POST) {
-
- return [self.manager POST:url parameters:parameters progress:uploadProgress success:success failure:failure];
-
- }else if(type == GET){
-
-
- return [self.manager GET:url parameters:parameters progress:uploadProgress success:success failure:failure];
-
- }else{
-
- NSAssert(type == GET || type == POST, @"请传入正确的网络请求方式");
- return [NSURLSessionDataTask new];
-
- }
-
- }
- /**
- 文件上传
- @param url url
- @param type 请求方式
- @param parameters 参数
- @param conBlock 上传文件的设置
- @param uploadProgress 上传进度
- @param success 成功
- @param failure 失败
- */
- -(NSURLSessionDataTask *)request:(NSString *)url method:(requestType)type parameters:(id)parameters constructingBodyWithBlock:(void(^)(id formData))conBlock progress:(void(^)(NSProgress *uploadProgress))uploadProgress success:(void(^)(NSURLSessionDataTask *task,id responseObject))success failure:(void(^)(NSURLSessionDataTask *task,NSError *error))failure{
-
-
- if (type == POST) {
-
- return [self.manager POST:url parameters:parameters constructingBodyWithBlock:conBlock progress:uploadProgress success:success failure:failure];
-
- }else{
-
- NSAssert(type == POST, @"请传入正确的网络请求方式");
-
- return [NSURLSessionDataTask new];
-
- }
-
- }
- /**
- 文件上传
-
- @param url 链接
- @param parameters 参数
- @param data 二进制数据
- @param dataKey 上传文件的key值
- @param fileName 上传成功后,需要保存到服务器的文件的名字
- @param uploadProgress 上传进度
- @param success 成功回调
- @param failure 失败回调
- */
- -(NSURLSessionDataTask *)upload:(NSString *)url parameters:(id)parameters data:(NSData *)data dataKey:(NSString *)dataKey fileName:(NSString *)fileName progress:(void(^)(NSProgress *uploadProgress))uploadProgress success:(void(^)(NSURLSessionDataTask *task,id responseObject))success failure:(void(^)(NSURLSessionDataTask *task,NSError *error))failure{
-
- return [self.manager POST:url parameters:parameters constructingBodyWithBlock:^(id<AFMultipartFormData> _Nonnull formData) {
- [formData appendPartWithFileData:data name:dataKey fileName:fileName mimeType:@"application/octet-stream"];
- } progress:uploadProgress success:success failure:failure];
-
-
- }
- @end
|