Commit c8cde4a7 authored by “Icebear”'s avatar “Icebear”

添加网络解析model、添加header

parent 87e234ab
...@@ -41,6 +41,7 @@ ...@@ -41,6 +41,7 @@
33E9799E251C498700437015 /* NRGlobalUrlModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 33E9799D251C498700437015 /* NRGlobalUrlModel.m */; }; 33E9799E251C498700437015 /* NRGlobalUrlModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 33E9799D251C498700437015 /* NRGlobalUrlModel.m */; };
33E979A1251C4B7900437015 /* BaseUrlConfig.json in Resources */ = {isa = PBXBuildFile; fileRef = 33E979A0251C4B7900437015 /* BaseUrlConfig.json */; }; 33E979A1251C4B7900437015 /* BaseUrlConfig.json in Resources */ = {isa = PBXBuildFile; fileRef = 33E979A0251C4B7900437015 /* BaseUrlConfig.json */; };
33E979A6251C659800437015 /* NSMutableArray+Safe.m in Sources */ = {isa = PBXBuildFile; fileRef = 33E979A5251C659800437015 /* NSMutableArray+Safe.m */; }; 33E979A6251C659800437015 /* NSMutableArray+Safe.m in Sources */ = {isa = PBXBuildFile; fileRef = 33E979A5251C659800437015 /* NSMutableArray+Safe.m */; };
33E979BB251C757A00437015 /* BaseHttpModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 33E979B9251C757A00437015 /* BaseHttpModel.m */; };
/* End PBXBuildFile section */ /* End PBXBuildFile section */
/* Begin PBXFileReference section */ /* Begin PBXFileReference section */
...@@ -104,6 +105,8 @@ ...@@ -104,6 +105,8 @@
33E9799D251C498700437015 /* NRGlobalUrlModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NRGlobalUrlModel.m; sourceTree = "<group>"; }; 33E9799D251C498700437015 /* NRGlobalUrlModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NRGlobalUrlModel.m; sourceTree = "<group>"; };
33E979A0251C4B7900437015 /* BaseUrlConfig.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = BaseUrlConfig.json; sourceTree = "<group>"; }; 33E979A0251C4B7900437015 /* BaseUrlConfig.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = BaseUrlConfig.json; sourceTree = "<group>"; };
33E979A5251C659800437015 /* NSMutableArray+Safe.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSMutableArray+Safe.m"; sourceTree = "<group>"; }; 33E979A5251C659800437015 /* NSMutableArray+Safe.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSMutableArray+Safe.m"; sourceTree = "<group>"; };
33E979B9251C757A00437015 /* BaseHttpModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BaseHttpModel.m; sourceTree = "<group>"; };
33E979BA251C757A00437015 /* BaseHttpModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BaseHttpModel.h; sourceTree = "<group>"; };
49664D4BB9E25240F6B2F0A9 /* Pods-NetrainFrame.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-NetrainFrame.release.xcconfig"; path = "Target Support Files/Pods-NetrainFrame/Pods-NetrainFrame.release.xcconfig"; sourceTree = "<group>"; }; 49664D4BB9E25240F6B2F0A9 /* Pods-NetrainFrame.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-NetrainFrame.release.xcconfig"; path = "Target Support Files/Pods-NetrainFrame/Pods-NetrainFrame.release.xcconfig"; sourceTree = "<group>"; };
AFAD26382CE323D58F08BF66 /* Pods_NetrainFrame.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_NetrainFrame.framework; sourceTree = BUILT_PRODUCTS_DIR; }; AFAD26382CE323D58F08BF66 /* Pods_NetrainFrame.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_NetrainFrame.framework; sourceTree = BUILT_PRODUCTS_DIR; };
DCF21838657E8CF2B8988B38 /* Pods-NetrainFrame.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-NetrainFrame.debug.xcconfig"; path = "Target Support Files/Pods-NetrainFrame/Pods-NetrainFrame.debug.xcconfig"; sourceTree = "<group>"; }; DCF21838657E8CF2B8988B38 /* Pods-NetrainFrame.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-NetrainFrame.debug.xcconfig"; path = "Target Support Files/Pods-NetrainFrame/Pods-NetrainFrame.debug.xcconfig"; sourceTree = "<group>"; };
...@@ -400,6 +403,8 @@ ...@@ -400,6 +403,8 @@
33E97992251C476300437015 /* NRBaseModelAgent.m */, 33E97992251C476300437015 /* NRBaseModelAgent.m */,
33E9799C251C498700437015 /* NRGlobalUrlModel.h */, 33E9799C251C498700437015 /* NRGlobalUrlModel.h */,
33E9799D251C498700437015 /* NRGlobalUrlModel.m */, 33E9799D251C498700437015 /* NRGlobalUrlModel.m */,
33E979BA251C757A00437015 /* BaseHttpModel.h */,
33E979B9251C757A00437015 /* BaseHttpModel.m */,
33E979A0251C4B7900437015 /* BaseUrlConfig.json */, 33E979A0251C4B7900437015 /* BaseUrlConfig.json */,
); );
path = BaseModelAgent; path = BaseModelAgent;
...@@ -573,6 +578,7 @@ ...@@ -573,6 +578,7 @@
33E97970251B601700437015 /* NRLoginLogic.m in Sources */, 33E97970251B601700437015 /* NRLoginLogic.m in Sources */,
335F6A6F25184A5E0083A571 /* main.m in Sources */, 335F6A6F25184A5E0083A571 /* main.m in Sources */,
33560A05251B5C3500628080 /* NRBaseRequest.m in Sources */, 33560A05251B5C3500628080 /* NRBaseRequest.m in Sources */,
33E979BB251C757A00437015 /* BaseHttpModel.m in Sources */,
331B5525251AEF7300FFFC5C /* MainCoordinator.m in Sources */, 331B5525251AEF7300FFFC5C /* MainCoordinator.m in Sources */,
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
......
//
// RDHttpModel.h
// ReadingDay
//
// Created by yuenov on 2019/12/23.
// Copyright © 2019 yuenov. All rights reserved.
//
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
@interface BaseHttpModel : NSObject
@property(nonatomic, assign) NSInteger errcode;
@property(nonatomic, strong) NSString *errmsg;
@property(nonatomic, strong) NSDictionary *data;
@end
NS_ASSUME_NONNULL_END
//
// RDHttpModel.m
// ReadingDay
//
// Created by yuenov on 2019/12/23.
// Copyright © 2019 yuenov. All rights reserved.
//
#import "BaseHttpModel.h"
@implementation BaseHttpModel
@end
{ {
"product": { "product":{
"kDomain" : "api.docker.naiterui.com/", "http":{
"kHost" : "ad", "kHost" : "http://api.docker.naiterui.com/ad",
"kSwagger" : "emr", "kSwagger" : "http://api.docker.naiterui.com/emr",
"kMHost" : "recommend", "kMHost" : "http://api.docker.naiterui.com/recommend",
"kH5Path" : "", "kH5Path" : "http://doctor.docker.naiterui.com",
"kChat" : "yun", "kChat" : "http://api.docker.naiterui.com/yun",
"kHHost" : "im", "kHHost" : "http://api.docker.naiterui.com/im",
"kTHost" : "push", "kTHost" : "http://api.docker.naiterui.com/push",
"kH5Zip" : "", "kH5Zip" : "http://api.docker.naiterui.com",
"kH5_envir" : "1", "kH5_envir" : "1",
"useSSL" : 1, },
"https" : {
"kHost" : "https://api.docker.naiterui.com/ad",
"kSwagger" : "https://api.docker.naiterui.com/emr",
"kMHost" : "https://api.docker.naiterui.com/recommend",
"kH5Path" : "https://doctor.docker.naiterui.com",
"kChat" : "https://api.docker.naiterui.com/yun",
"kHHost" : "https://api.docker.naiterui.com/im",
"kTHost" : "https://api.docker.naiterui.com/push",
"kH5Zip" : "https://api.docker.naiterui.com",
"kH5_envir" : "1",
}
},
"developer":{
"http":{
"kHost" : "http://user.dev.naiterui.com/ad",
"kSwagger" : "http://medical.dev.naiterui.com/emr",
"kMHost" : "http://medical.dev.naiterui.com/recommend",
"kH5Path" : "http://doctorapp.dev.naiterui.com",
"kChat" : "http://yun.dev.naiterui.com",
"kHHost" : "http://im.dev.naiterui.com",
"kTHost" : "http://basic.dev.naiterui.com/push",
"kH5Zip" : "doctorapp.dev.naiterui.com",
"kH5_envir" : "1",
},
"https" : {
"kHost" : "https://api.docker.naiterui.com/ad",
"kSwagger" : "https://api.docker.naiterui.com/emr",
"kMHost" : "https://api.docker.naiterui.com/recommend",
"kH5Path" : "https://doctor.docker.naiterui.com",
"kChat" : "https://api.docker.naiterui.com/yun",
"kHHost" : "https://api.docker.naiterui.com/im",
"kTHost" : "https://api.docker.naiterui.com/push",
"kH5Zip" : "https://api.docker.naiterui.com",
"kH5_envir" : "1",
}
}, },
"developer": {
}
} }
...@@ -11,6 +11,7 @@ typedef enum : NSUInteger { ...@@ -11,6 +11,7 @@ typedef enum : NSUInteger {
AppServer_Developer, AppServer_Developer,
AppServer_Product, AppServer_Product,
} AppServer; } AppServer;
NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_BEGIN
@interface NRGlobalUrlModel : NSObject @interface NRGlobalUrlModel : NSObject
...@@ -19,17 +20,26 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -19,17 +20,26 @@ NS_ASSUME_NONNULL_BEGIN
@property(nonatomic, assign) AppServer appServer; @property(nonatomic, assign) AppServer appServer;
@property(nonatomic, strong) NSString *kHost; @property(nonatomic, assign) BOOL useSSL;
@property(nonatomic, strong) NSString *kSwagger;
@property(nonatomic, strong) NSString *kMHost; ///医生服务
@property(nonatomic, strong) NSString *kH5Path; @property(nonatomic, copy) NSString *kHost;
@property(nonatomic, strong) NSString *kChat; ///swagger服务器
@property(nonatomic, strong) NSString *kHHost; @property(nonatomic, copy) NSString *kSwagger;
@property(nonatomic, strong) NSString *kTHost; ///推荐服务
@property(nonatomic, strong) NSString *kH5Version; @property(nonatomic, copy) NSString *kMHost;
@property(nonatomic, strong) NSString *kH5Zip; ///H5地址
@property(nonatomic, strong) NSString *kH5Environmental; @property(nonatomic, copy) NSString *kH5Path;
///咨询文件地址
@property(nonatomic, copy) NSString *kChat;
///咨询上行地址
@property(nonatomic, copy) NSString *kHHost;
///push地址
@property(nonatomic, copy) NSString *kTHost;
///H5 zip地址
@property(nonatomic, copy) NSString *kH5Zip;
///H5环境
@property(nonatomic, copy) NSString *kH5_envir;
@end @end
NS_ASSUME_NONNULL_END NS_ASSUME_NONNULL_END
...@@ -7,25 +7,6 @@ ...@@ -7,25 +7,6 @@
#import "NRGlobalUrlModel.h" #import "NRGlobalUrlModel.h"
@interface URLModel : NSObject
@property(nonatomic, copy) NSString *kDomain;
@property(nonatomic, copy) NSString *kHost;
@property(nonatomic, copy) NSString *kSwagger;
@property(nonatomic, copy) NSString *kMHost;
@property(nonatomic, copy) NSString *kH5Path;
@property(nonatomic, copy) NSString *kChat;
@property(nonatomic, copy) NSString *kHHost;
@property(nonatomic, copy) NSString *kTHost;
@property(nonatomic, copy) NSString *kH5Zip;
@property(nonatomic, copy) NSString *kH5_envir;
@property(nonatomic, assign) BOOL useSSL;
@end
@implementation URLModel
@end
@implementation NRGlobalUrlModel @implementation NRGlobalUrlModel
+ (NRGlobalUrlModel *)sharedInstance { + (NRGlobalUrlModel *)sharedInstance {
static NRGlobalUrlModel *sharedInstance = nil; static NRGlobalUrlModel *sharedInstance = nil;
...@@ -34,6 +15,8 @@ ...@@ -34,6 +15,8 @@
dispatch_once(&onceToken, ^{ dispatch_once(&onceToken, ^{
if (!sharedInstance) { if (!sharedInstance) {
sharedInstance = [[self alloc] init]; sharedInstance = [[self alloc] init];
sharedInstance.appServer = 1;
sharedInstance.useSSL = NO;
[sharedInstance cofigureAppServer]; [sharedInstance cofigureAppServer];
} }
}); });
...@@ -46,24 +29,24 @@ ...@@ -46,24 +29,24 @@
NSAssert(NO, @"出错了!"); NSAssert(NO, @"出错了!");
} }
NSString *str = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil]; NSString *str = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
NSDictionary *urlDict = [str yy_modelToJSONObject]; NSData *jsonData = [str dataUsingEncoding:NSUTF8StringEncoding];
URLModel *urlModel = [[URLModel alloc] init]; NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableContainers error:nil];
NSDictionary *urlDict = [NSDictionary dictionary];
if(self.appServer == ProductSever){ if(self.appServer == ProductSever){
urlModel = [[[NRBaseModelAgent agent] createModel:[URLModel class] fromJson:urlDict[@"product"]] objectAtIndex:0]; urlDict = _useSSL ? (dict[@"product"][@"https"]) : (dict[@"product"][@"http"]);
self.kHost = [dict objectForKey:@"kHost"];
}else{ }else{
urlModel = [[[NRBaseModelAgent agent] createModel:[URLModel class] fromJson:urlDict[@"developer"]] objectAtIndex:0]; urlDict = _useSSL ? (dict[@"developer"][@"https"]) : (dict[@"developer"][@"http"]);
}
if(urlModel){
self.kHost = [NSString stringWithFormat:@"%@%@%@",urlModel.useSSL?@"https://":@"http://",urlModel.kDomain,urlModel.kHost];
self.kSwagger = [NSString stringWithFormat:@"%@%@%@",urlModel.useSSL?@"https://":@"http://",urlModel.kDomain,urlModel.kSwagger];
self.kMHost = [NSString stringWithFormat:@"%@%@%@",urlModel.useSSL?@"https://":@"http://",urlModel.kDomain,urlModel.kMHost];
self.kH5Path = [NSString stringWithFormat:@"%@%@%@",urlModel.useSSL?@"https://":@"http://",urlModel.kDomain,urlModel.kH5Path];
self.kChat = [NSString stringWithFormat:@"%@%@%@",urlModel.useSSL?@"https://":@"http://",urlModel.kDomain,urlModel.kChat];
self.kHHost = [NSString stringWithFormat:@"%@%@%@",urlModel.useSSL?@"https://":@"http://",urlModel.kDomain,urlModel.kHHost];
self.kTHost = [NSString stringWithFormat:@"%@%@%@",urlModel.useSSL?@"https://":@"http://",urlModel.kDomain,urlModel.kTHost];
self.kH5Version = @"1.0";
self.kH5Zip = [NSString stringWithFormat:@"%@%@",urlModel.useSSL?@"https://":@"http://",urlModel.kDomain];
self.kH5Environmental = urlModel.kH5_envir;
} }
self.kHost = [urlDict objectForKey:@"kHost"];
self.kSwagger = [urlDict objectForKey:@"kSwagger"];
self.kMHost = [urlDict objectForKey:@"kMHost"];
self.kH5Path = [urlDict objectForKey:@"kH5Path"];
self.kChat = [urlDict objectForKey:@"kChat"];
self.kHHost = [urlDict objectForKey:@"kHHost"];
self.kTHost = [urlDict objectForKey:@"kTHost"];
self.kH5Zip = [urlDict objectForKey:@"kH5Zip"];
self.kH5_envir = [urlDict objectForKey:@"kH5_envir"];
} }
@end @end
...@@ -8,6 +8,8 @@ ...@@ -8,6 +8,8 @@
#import <YTKNetwork/YTKNetwork.h> #import <YTKNetwork/YTKNetwork.h>
///环境Url ///环境Url
#import "NRGlobalUrlModel.h" #import "NRGlobalUrlModel.h"
#import "NRBaseModelAgent.h"
/* /*
接口请求基类,所有请求必须继承此类 接口请求基类,所有请求必须继承此类
这里采用的是YTKNetwork网络库,中大型APP专用,可满足所有网络需求 这里采用的是YTKNetwork网络库,中大型APP专用,可满足所有网络需求
......
...@@ -7,9 +7,17 @@ ...@@ -7,9 +7,17 @@
#import "NRBaseRequest.h" #import "NRBaseRequest.h"
#import "NRGlobalUrlModel.h" #import "NRGlobalUrlModel.h"
#import "BaseHttpModel.h"
#define kBaseApiOtherError @"服务器错误,请稍后再试" #define kBaseApiOtherError @"服务器错误,请稍后再试"
#define kSuccHttpCode 0 #define kSuccHttpCode 0
@interface NRBaseRequest()
@property(nonatomic, strong) BaseHttpModel *httpModel;
@end
@implementation NRBaseRequest @implementation NRBaseRequest
- (void)dealloc { - (void)dealloc {
NSLog(@"dealloc %@", [NSString stringWithUTF8String:class_getName([self class])]); NSLog(@"dealloc %@", [NSString stringWithUTF8String:class_getName([self class])]);
...@@ -29,26 +37,26 @@ ...@@ -29,26 +37,26 @@
return YTKRequestMethodPOST; return YTKRequestMethodPOST;
} }
//- (BaseHttpModel *)httpModel { - (BaseHttpModel *)httpModel {
// if (!_httpModel) { if (!_httpModel) {
// NSArray *arr = [[BookModelAgent agent] createModel:[BaseHttpModel class] fromJson:self.responseJSONObject]; NSArray *arr = [[NRBaseModelAgent agent] createModel:[BaseHttpModel class] fromJson:self.responseJSONObject];
// _httpModel = [arr objectAtIndexSafely:0]; _httpModel = [arr objectAtIndex:0];
// } }
//
// return _httpModel;
//}
//- (BOOL)isSucc {
// BaseHttpModel *httpModel = self.httpModel;
// return httpModel && httpModel.errcode == kSuccHttpCode;
//}
//- (NSString *)errorMsg {
// BaseHttpModel *httpModel = self.httpModel;
// return httpModel.errmsg.length > 0 ? httpModel.errmsg : kBaseApiOtherError;
//}
#pragma mark ————— 如果是加密方式传输,自定义request ————— return _httpModel;
-(NSURLRequest *)buildCustomUrlRequest{ }
return nil; - (BOOL)isSucc {
BaseHttpModel *httpModel = self.httpModel;
return httpModel && httpModel.errcode == kSuccHttpCode;
}
- (NSString *)errorMsg {
BaseHttpModel *httpModel = self.httpModel;
return httpModel.errmsg.length > 0 ? httpModel.errmsg : kBaseApiOtherError;
}
-(NSDictionary *)requestHeaderFieldValueDictionary{
NSDictionary *headers = [NSDictionary dictionaryWithObjectsAndKeys:@"application/x-www-form-urlencoded;charset=utf-8;", @"Content-Type",@"iPhone 8",@"_m",@"1",@"_p",@"1",@"_o",@"1",@"_n",@"1.0.0",@"_v",@"1.0",@"_nv",@"14.55.27.328",@"startTime",nil];
return headers;
} }
- (void)startWithCompletionBlock:(void (^)(NRBaseRequest *request, NSString *error))block { - (void)startWithCompletionBlock:(void (^)(NRBaseRequest *request, NSString *error))block {
...@@ -59,12 +67,12 @@ ...@@ -59,12 +67,12 @@
return; return;
} }
__strong typeof(weakSelf) strongSelf = weakSelf; __strong typeof(weakSelf) strongSelf = weakSelf;
// if ([strongSelf isSucc]) { if ([strongSelf isSucc]) {
// block(strongSelf, nil); block(strongSelf, nil);
// } }
// else { else {
// block(strongSelf, [strongSelf errorMsg]); block(strongSelf, [strongSelf errorMsg]);
// } }
} failure:^(__kindof YTKBaseRequest *_Nonnull request) { } failure:^(__kindof YTKBaseRequest *_Nonnull request) {
if (!block) { if (!block) {
......
...@@ -39,5 +39,10 @@ ...@@ -39,5 +39,10 @@
<string>UIInterfaceOrientationLandscapeLeft</string> <string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string> <string>UIInterfaceOrientationLandscapeRight</string>
</array> </array>
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
</dict> </dict>
</plist> </plist>
...@@ -14,9 +14,6 @@ ...@@ -14,9 +14,6 @@
#import "ThirdMacros.h" #import "ThirdMacros.h"
#import "NotificationMacros.h" #import "NotificationMacros.h"
///Model解析
#import "NRBaseModelAgent.h"
//第三方 //第三方
#import <Masonry.h> #import <Masonry.h>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment