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

添加网络解析model、添加header

parent 87e234ab
......@@ -41,6 +41,7 @@
33E9799E251C498700437015 /* NRGlobalUrlModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 33E9799D251C498700437015 /* NRGlobalUrlModel.m */; };
33E979A1251C4B7900437015 /* BaseUrlConfig.json in Resources */ = {isa = PBXBuildFile; fileRef = 33E979A0251C4B7900437015 /* BaseUrlConfig.json */; };
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 */
/* Begin PBXFileReference section */
......@@ -104,6 +105,8 @@
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>"; };
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>"; };
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>"; };
......@@ -400,6 +403,8 @@
33E97992251C476300437015 /* NRBaseModelAgent.m */,
33E9799C251C498700437015 /* NRGlobalUrlModel.h */,
33E9799D251C498700437015 /* NRGlobalUrlModel.m */,
33E979BA251C757A00437015 /* BaseHttpModel.h */,
33E979B9251C757A00437015 /* BaseHttpModel.m */,
33E979A0251C4B7900437015 /* BaseUrlConfig.json */,
);
path = BaseModelAgent;
......@@ -573,6 +578,7 @@
33E97970251B601700437015 /* NRLoginLogic.m in Sources */,
335F6A6F25184A5E0083A571 /* main.m in Sources */,
33560A05251B5C3500628080 /* NRBaseRequest.m in Sources */,
33E979BB251C757A00437015 /* BaseHttpModel.m in Sources */,
331B5525251AEF7300FFFC5C /* MainCoordinator.m in Sources */,
);
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": {
"kDomain" : "api.docker.naiterui.com/",
"kHost" : "ad",
"kSwagger" : "emr",
"kMHost" : "recommend",
"kH5Path" : "",
"kChat" : "yun",
"kHHost" : "im",
"kTHost" : "push",
"kH5Zip" : "",
"kH5_envir" : "1",
"useSSL" : 1,
"product":{
"http":{
"kHost" : "http://api.docker.naiterui.com/ad",
"kSwagger" : "http://api.docker.naiterui.com/emr",
"kMHost" : "http://api.docker.naiterui.com/recommend",
"kH5Path" : "http://doctor.docker.naiterui.com",
"kChat" : "http://api.docker.naiterui.com/yun",
"kHHost" : "http://api.docker.naiterui.com/im",
"kTHost" : "http://api.docker.naiterui.com/push",
"kH5Zip" : "http://api.docker.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":{
"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 {
AppServer_Developer,
AppServer_Product,
} AppServer;
NS_ASSUME_NONNULL_BEGIN
@interface NRGlobalUrlModel : NSObject
......@@ -19,17 +20,26 @@ NS_ASSUME_NONNULL_BEGIN
@property(nonatomic, assign) AppServer appServer;
@property(nonatomic, strong) NSString *kHost;
@property(nonatomic, strong) NSString *kSwagger;
@property(nonatomic, strong) NSString *kMHost;
@property(nonatomic, strong) NSString *kH5Path;
@property(nonatomic, strong) NSString *kChat;
@property(nonatomic, strong) NSString *kHHost;
@property(nonatomic, strong) NSString *kTHost;
@property(nonatomic, strong) NSString *kH5Version;
@property(nonatomic, strong) NSString *kH5Zip;
@property(nonatomic, strong) NSString *kH5Environmental;
@property(nonatomic, assign) BOOL useSSL;
///医生服务
@property(nonatomic, copy) NSString *kHost;
///swagger服务器
@property(nonatomic, copy) NSString *kSwagger;
///推荐服务
@property(nonatomic, copy) NSString *kMHost;
///H5地址
@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
NS_ASSUME_NONNULL_END
......@@ -7,25 +7,6 @@
#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
+ (NRGlobalUrlModel *)sharedInstance {
static NRGlobalUrlModel *sharedInstance = nil;
......@@ -34,6 +15,8 @@
dispatch_once(&onceToken, ^{
if (!sharedInstance) {
sharedInstance = [[self alloc] init];
sharedInstance.appServer = 1;
sharedInstance.useSSL = NO;
[sharedInstance cofigureAppServer];
}
});
......@@ -46,24 +29,24 @@
NSAssert(NO, @"出错了!");
}
NSString *str = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
NSDictionary *urlDict = [str yy_modelToJSONObject];
URLModel *urlModel = [[URLModel alloc] init];
NSData *jsonData = [str dataUsingEncoding:NSUTF8StringEncoding];
NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableContainers error:nil];
NSDictionary *urlDict = [NSDictionary dictionary];
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{
urlModel = [[[NRBaseModelAgent agent] createModel:[URLModel class] fromJson:urlDict[@"developer"]] objectAtIndex:0];
}
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;
urlDict = _useSSL ? (dict[@"developer"][@"https"]) : (dict[@"developer"][@"http"]);
}
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
......@@ -8,6 +8,8 @@
#import <YTKNetwork/YTKNetwork.h>
///环境Url
#import "NRGlobalUrlModel.h"
#import "NRBaseModelAgent.h"
/*
接口请求基类,所有请求必须继承此类
这里采用的是YTKNetwork网络库,中大型APP专用,可满足所有网络需求
......
......@@ -7,9 +7,17 @@
#import "NRBaseRequest.h"
#import "NRGlobalUrlModel.h"
#import "BaseHttpModel.h"
#define kBaseApiOtherError @"服务器错误,请稍后再试"
#define kSuccHttpCode 0
@interface NRBaseRequest()
@property(nonatomic, strong) BaseHttpModel *httpModel;
@end
@implementation NRBaseRequest
- (void)dealloc {
NSLog(@"dealloc %@", [NSString stringWithUTF8String:class_getName([self class])]);
......@@ -29,26 +37,26 @@
return YTKRequestMethodPOST;
}
//- (BaseHttpModel *)httpModel {
// if (!_httpModel) {
// NSArray *arr = [[BookModelAgent agent] createModel:[BaseHttpModel class] fromJson:self.responseJSONObject];
// _httpModel = [arr objectAtIndexSafely: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;
//}
- (BaseHttpModel *)httpModel {
if (!_httpModel) {
NSArray *arr = [[NRBaseModelAgent agent] createModel:[BaseHttpModel class] fromJson:self.responseJSONObject];
_httpModel = [arr objectAtIndex:0];
}
#pragma mark ————— 如果是加密方式传输,自定义request —————
-(NSURLRequest *)buildCustomUrlRequest{
return nil;
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;
}
-(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 {
......@@ -59,12 +67,12 @@
return;
}
__strong typeof(weakSelf) strongSelf = weakSelf;
// if ([strongSelf isSucc]) {
// block(strongSelf, nil);
// }
// else {
// block(strongSelf, [strongSelf errorMsg]);
// }
if ([strongSelf isSucc]) {
block(strongSelf, nil);
}
else {
block(strongSelf, [strongSelf errorMsg]);
}
} failure:^(__kindof YTKBaseRequest *_Nonnull request) {
if (!block) {
......
......@@ -39,5 +39,10 @@
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
</dict>
</plist>
......@@ -14,9 +14,6 @@
#import "ThirdMacros.h"
#import "NotificationMacros.h"
///Model解析
#import "NRBaseModelAgent.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