This commit is contained in:
2022-03-21 11:16:38 +08:00
commit e89e807c64
1040 changed files with 284164 additions and 0 deletions

View File

@@ -0,0 +1,226 @@
//
// PhalApiClient.m
// PhalApiClientDemo
//
// Created by Aevit on 15/10/17.
// Copyright © 2015 Aevit. All rights reserved.
//
#import "PhalApiClient.h"
@interface PhalApiClient()
@end
@implementation PhalApiClient
- (instancetype)init {
self = [super init];
if (self) {
[self commonInit];
}
return self;
}
- (void)commonInit {
[self reset];
/**
* hostresethostwithHost
* e.g. [self withHost:@"http://api.your_host.com/project_name/"];
*/
}
#pragma mark - generate a client
/**
*
*
* @return PhalApiClient
*/
+ (PhalApiClient*)sharedClient {
static PhalApiClient *_sharedClient;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
_sharedClient = [[PhalApiClient alloc] init];
});
return _sharedClient;
}
/**
*
*
* @return PhalApiClient
*/
+ (PhalApiClient*)create {
PhalApiClient *client = [[PhalApiClient alloc] init];
return client;
}
#pragma mark - configure url and params
/**
*
*
* @return PhalApiClient
*/
- (PhalApiClient*)reset {
self.host = nil;
self.service = nil;
self.params = nil;
self.timeout = 0;
return self;
}
/**
*
* host"commonInit"hostwithHost
*
* @param host
*
* @return PhalApiClient
*/
- (PhalApiClient*)withHost:(NSString*)host {
self.host = nil;
self.host = host;
return self;
}
- (NSString *)host {
if ([[_host substringFromIndex:(_host.length - 1)] isEqualToString:@"/"]) {
return _host;
}
_host = [NSString stringWithFormat:@"%@/", _host];
return _host;
}
/**
* Default.Index
*
* @param service
*
* @return PhalApiClient
*/
- (PhalApiClient*)withService:(NSString*)service {
self.service = nil;
self.service = service;
return self;
}
/**
*
*
* @param params
*
* @return PhalApiClient
*/
- (PhalApiClient*)withParams:(NSDictionary*)params {
self.params = nil;
if (!params) {
return self;
}
self.params = [NSMutableDictionary dictionaryWithDictionary:params];
return self;
}
/**
* DI().filter
*
* @return PhalApiClient
*/
- (PhalApiClient*)withFilter:(PhalApiClientFilter*)filter {
self.filter = filter;
return self;
}
/**
*
*
* @param timeout
*
* @return PhalApiClient
*/
- (PhalApiClient*)withTimeout:(float)timeout {
self.timeout = timeout;
return self;
}
- (float)timeout {
// 60s
return (_timeout > 0 ? _timeout : 60);
}
#pragma mark - request
/**
* POST
*
* @param completeBlock
* @param failureBlock
*
* @return
*/
- (id)request:(HttpCompleteBlock)completeBlock failureBlock:(HttpFailureBlock)failureBlock {
/**
* 使NSURLSession
* 使AFNetworkinghttps://github.com/AFNetworking/AFNetworking
* AFNPhalApiClientPhalApiClientrequest
* 使NSURLSessionPhalApiClientrequestAFNPhalApiClient
*/
return [self requestWithFormDataBlock:nil completeBlock:completeBlock failureBlock:failureBlock];
}
/**
* ()
*
* @param formDataBlock
* @param completeBlock
* @param failureBlock
*
* @return
*/
- (id)requestWithFormDataBlock:(FormDataBlock)formDataBlock completeBlock:(HttpCompleteBlock)completeBlock failureBlock:(HttpFailureBlock)failureBlock {
/**
* 使NSURLSession
* 使AFNetworkinghttps://github.com/AFNetworking/AFNetworking
* AFNPhalApiClientPhalApiClientrequest
* 使NSURLSessionPhalApiClientrequestAFNPhalApiClient
*/
return nil;
}
#pragma mark - utils
/**
* geturl便
*
* @return url
*/
- (NSString*)printTotalUrlStr {
if (!_host || _host.length <= 0) {
return @"empty host";
}
NSMutableString *finalStr = [NSMutableString stringWithString:_host];
[finalStr appendFormat:@"?service=%@&", _service];
if (_params) {
for (NSString *key in [_params allKeys]) {
[finalStr appendString:key];
[finalStr appendString:@"="];
id value = [_params objectForKey:key];
NSString *valueStr = @"";
if ([value isKindOfClass:[NSNumber class]]) {
valueStr = [value stringValue];
} else if ([value isKindOfClass:[NSString class]]) {
valueStr = value;
} else {
PALog(@"什么鬼?!");
}
[finalStr appendString:valueStr];
[finalStr appendString:@"&"];
}
}
return [finalStr substringWithRange:NSMakeRange(0, finalStr.length - 1)];
}
@end