From 3e8437ae559487362fae3525beb79c534c213a51 Mon Sep 17 00:00:00 2001 From: 单军华 Date: Thu, 12 Jul 2018 13:44:34 +0800 Subject: [PATCH] bug修复和功能优化 --- screendisplay/screendisplay/Classes/Network/NetworkDemo.m | 392 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 392 insertions(+), 0 deletions(-) diff --git a/screendisplay/screendisplay/Classes/Network/NetworkDemo.m b/screendisplay/screendisplay/Classes/Network/NetworkDemo.m new file mode 100755 index 0000000..d80eaeb --- /dev/null +++ b/screendisplay/screendisplay/Classes/Network/NetworkDemo.m @@ -0,0 +1,392 @@ +// +// NetworkDemo.m +// PPNetworkHelper +// +// Created by AndyPang on 16/8/12. +// Copyright �� 2016��� AndyPang. All rights reserved. +// + +/* + ********************************************************************************* + * + *������������������ ������ PP-iOS���������������: 323408051 ������������!!! ������������������ + * + * ������������������ PPNetworkHelper ������������������bug���������������������,������������������������������������,��������� + * ���������bug,������������. + * + * Weibo : jkpang-��� + * Email : jkpang@outlook.com + * QQ ��� : 323408051 + * GitHub: https://github.com/jkpang + * + * PS:������������������������������������,������������! + * 1.������������������������������������,���������A~Z������������(������������������������������������������): + * GitHub:https://github.com/jkpang/PPGetAddressBook + * 2.iOS���������������������������������������������(������/������/���������/������������/������������������): + * GitHub:https://github.com/jkpang/PPNumberButton + * + * ������ PPGetAddressBookSwift ������,������������Star������,������ ������ ���������������������������! + ********************************************************************************* + */ + +#import "NetworkDemo.h" +#import "PPNetworkHelper.h" +#import "PPHTTPRequest.h" +#import "AFNetworking.h" +#import "BaseResModel.h" +#import "Global.h" + +#ifdef DEBUG +#define PPLog(...) printf("[%s] %s [���%d���]: %s\n", __TIME__ ,__PRETTY_FUNCTION__ ,__LINE__, [[NSString stringWithFormat:__VA_ARGS__] UTF8String]) +#else +#define PPLog(...) +#endif + + +static NSString *const dataUrl = @"http://api.budejie.com/api/api_open.php"; +static NSString *const downloadUrl = @"http://wvideo.spriteapp.cn/video/2016/0328/56f8ec01d9bfe_wpd.mp4"; + +@interface NetworkDemo () + +@property (weak, nonatomic) IBOutlet UITextView *networkData; +@property (weak, nonatomic) IBOutlet UITextView *cacheData; +@property (weak, nonatomic) IBOutlet UILabel *cacheStatus; +@property (weak, nonatomic) IBOutlet UISwitch *cacheSwitch; +@property (weak, nonatomic) IBOutlet UIProgressView *progress; +@property (weak, nonatomic) IBOutlet UIButton *downloadBtn; + +/** ������������������*/ +@property (nonatomic, assign, getter=isCache) BOOL cache; + +/** ������������������*/ +@property (nonatomic, assign, getter=isDownload) BOOL download; +@end + +@implementation NetworkDemo + +- (void)viewDidLoad { + [super viewDidLoad]; + + /** + ���������������������������������:������������������������ + PPRequestSerializerJSON(JSON������), + PPRequestSerializerHTTP(���������������) + + ������������ : [PPNetworkHelper setRequestSerializer:PPRequestSerializerHTTP]; + */ + + /** + ���������������������������������:���������JSON������ + PPResponseSerializerJSON(JSON������), + PPResponseSerializerHTTP(���������������) + + ������������ : [PPNetworkHelper setResponseSerializer:PPResponseSerializerJSON]; + */ + + /** + ��������������� : [PPNetworkHelper setValue:@"value" forHTTPHeaderField:@"header"]; + */ + + // ������������������ + [PPNetworkHelper openLog]; + + [PPNetworkHelper setRequestSerializer:PPRequestSerializerJSON]; + + // ������������������������ + PPLog(@"������������������cache = %fKB",[PPNetworkCache getAllHttpCacheSize]/1024.f); + + // ������������ [PPNetworkCache removeAllHttpCache]; + + // ������������������������ + [self monitorNetworkStatus]; + + /* + * ��������������������������������� + ������������0.1s������������������������������������,���������������������������������������������������(���������������AFN���BUG), + ���������demo������������������������������,���������������������������demo������������, ������������������������������������������������������,������������ + */ + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ + [self getCurrentNetworkStatus]; + }); + + [self data_upload]; +} + +/** + + ������������������������������������������ , ���������������������������������,��������������� PPHTTPRequestLayer ��������������������� + ������,���������������������������������������,���������������������,������������������������, + ���������������������������, ���������������������������. + */ +- (void)PPHTTPRequestLayerDemo +{ +// // ������ +// [PPHTTPRequest getLoginWithParameters:@"������" success:^(id response) { +// +// } failure:^(NSError *error) { +// +// }]; +// +// // ������ +// [PPHTTPRequest getExitWithParameters:@"������" success:^(id response) { +// +// } failure:^(NSError *error) { +// +// }]; +} + + +-(void)data_upload +{ + +// UploadModel *model = [[UploadModel alloc] init]; +// +// +// model.lat = [NSString stringWithFormat:@"%lf",0.00000]; +// model.lon = [NSString stringWithFormat:@"%lf",0.00000]; +// model.userid = @"597bf6a1a0e6d23f5c3c9869"; +// model.address = @"������������"; +// +// NSMutableArray * dataModelArr = [[NSMutableArray alloc] init]; +// for (int i = 0; i < 10; i++) { +// DataModel * model = [[DataModel alloc] init]; +// model.time = @"2018-04-23 10:09:28"; +// model.type = @"1"; +// model.is_warn = @"0"; +// model.value = @"0.012"; +// [dataModelArr addObject:model]; +// } +// +// model.data = [[NSMutableArray alloc] init]; +// [model.data addObjectsFromArray:dataModelArr]; + NSMutableDictionary *param = [[NSMutableDictionary alloc] init]; + [param setObject:@"15162662339" forKey:@"username"]; + [param setObject:@"123456" forKey:@"password"]; + +// // ������ +// [PPHTTPRequest getLoginWithParameters:param success:^(id responseBody) { +// BaseResModel * resModel = [Global toBaseModel:responseBody]; +// if(resModel.code == 1) +// { +// +// } +// } failure:^(NSError *error) { +// PPLog(@"������������%@",error); +// }]; + + //[UserDefault stringForKey:@"user_id"] +// NSString *path = [[NSString alloc] initWithFormat:DATA_UPLOAD]; +// +// UploadModel *model = [[UploadModel alloc] init]; +// +// //['refresh_frequency', 'video', 'is_open_upload'] +// //[param setValue:[UserDefault stringForKey:@"user_id"] forKey:@"user_id"]; +// address = @"������������"; +// +// model.lat = [NSString stringWithFormat:@"%lf",latitude]; +// model.lon = [NSString stringWithFormat:@"%lf",longitude]; +// model.userid = [UserDefault stringForKey:@"user_id"]; +// model.address = address; +// +// model.data = [[NSMutableArray alloc] init]; +// [model.data addObjectsFromArray:dataModelArr]; +// +// //NSString * tempString = [Global convertToJsonData:model.toDic]; +// MPWeakSelf(self); +// [NetworkSingleton networkingPostMethod:model.toDic urlName:path success:^(id responseBody) +// { +// MPStrongSelf(self); +// BaseResModel * resModel = [Global toBaseModel:responseBody]; +// +// if(resModel.code == 1) +// { +// [dataModelArr removeAllObjects]; +// +// //[UserDefault setObject:self.is_open_upload forKey:@"is_open_upload"]; +// [UserDefault synchronize]; +// +// //[self.tableView reloadData]; +// [Global alertMessageEx:resModel.desc title:@"������������" okTtitle:nil cancelTitle:@"OK" delegate:self]; +// } +// else +// { +// [Global alertMessageEx:resModel.desc title:@"������������" okTtitle:nil cancelTitle:@"OK" delegate:self]; +// } +// } +// failure:^(NSString *error) +// { +// +// [Global alertMessageEx:error title:@"������������" okTtitle:nil cancelTitle:@"OK" delegate:self]; +// }]; +} + +#pragma mark - ������������������������ GET������������������������������ +#pragma mark - ���������������������������������, ������������������������������������������, ������������������������PPHTTPRequestLayer������������������ +- (void)getData:(BOOL)isOn url:(NSString *)url +{ + + [self data_upload]; + + NSDictionary *para = @{ @"a":@"list", @"c":@"data",@"client":@"iphone",@"page":@"0",@"per":@"10", @"type":@"29"}; + // ������������ + if(isOn) + { + self.cacheStatus.text = @"������������"; + self.cacheSwitch.on = YES; + [PPNetworkHelper GET:url parameters:para responseCache:^(id responseCache) { + // 1.��������������������� + self.cacheData.text = [self jsonToString:responseCache]; + } success:^(id responseObject) { + // 2.��������������������� + self.networkData.text = [self jsonToString:responseObject]; + } failure:^(NSError *error) { + + }]; + + } + // ��������� + else + { + self.cacheStatus.text = @"������������"; + self.cacheSwitch.on = NO; + self.cacheData.text = @""; + + [PPNetworkHelper GET:url parameters:para success:^(id responseObject) { + self.networkData.text = [self jsonToString:responseObject]; + } failure:^(NSError *error) { + + }]; + + } + +} +#pragma mark - ������������������������ +- (void)monitorNetworkStatus +{ + // ������������������������, networkStatusWithBlock������������������ + [PPNetworkHelper networkStatusWithBlock:^(PPNetworkStatusType networkStatus) { + + switch (networkStatus) { + // ������������ + case PPNetworkStatusUnknown: + // ��������� + case PPNetworkStatusNotReachable: + self.networkData.text = @"������������"; + [self getData:YES url:dataUrl]; + PPLog(@"���������,������������������"); + break; + // ������������ + case PPNetworkStatusReachableViaWWAN: + // ������������ + case PPNetworkStatusReachableViaWiFi: + [self getData:[[NSUserDefaults standardUserDefaults] boolForKey:@"isOn"] url:dataUrl]; + PPLog(@"���������,������������������"); + break; + } + + }]; + +} + +#pragma mark - ��������������������������������������� +- (void)getCurrentNetworkStatus +{ + if (kIsNetwork) { + PPLog(@"���������"); + if (kIsWWANNetwork) { + PPLog(@"������������"); + }else if (kIsWiFiNetwork){ + PPLog(@"WiFi������"); + } + } else { + PPLog(@"���������"); + } + // ��� +// if ([PPNetworkHelper isNetwork]) { +// PPLog(@"���������"); +// if ([PPNetworkHelper isWWANNetwork]) { +// PPLog(@"������������"); +// }else if ([PPNetworkHelper isWiFiNetwork]){ +// PPLog(@"WiFi������"); +// } +// } else { +// PPLog(@"���������"); +// } +} + +#pragma mark - ������ + +- (IBAction)download:(UIButton *)sender { + + static NSURLSessionTask *task = nil; + //������������ + if(!self.isDownload) + { + self.download = YES; + [self.downloadBtn setTitle:@"������������" forState:UIControlStateNormal]; + + task = [PPNetworkHelper downloadWithURL:downloadUrl fileDir:@"Download" progress:^(NSProgress *progress) { + + CGFloat stauts = 100.f * progress.completedUnitCount/progress.totalUnitCount; + self.progress.progress = stauts/100.f; + + PPLog(@"������������ :%.2f%%,,%@",stauts,[NSThread currentThread]); + } success:^(NSString *filePath) { + + UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"������������!" + message:[NSString stringWithFormat:@"������������:%@",filePath] + delegate:nil + cancelButtonTitle:@"������" + otherButtonTitles:nil]; + [alertView show]; + [self.downloadBtn setTitle:@"������������" forState:UIControlStateNormal]; + PPLog(@"filePath = %@",filePath); + + } failure:^(NSError *error) { + UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"������������" + message:[NSString stringWithFormat:@"%@",error] + delegate:nil + cancelButtonTitle:@"������" + otherButtonTitles:nil]; + [alertView show]; + PPLog(@"error = %@",error); + }]; + + } + //������������ + else + { + self.download = NO; + [task suspend]; + self.progress.progress = 0; + [self.downloadBtn setTitle:@"������������" forState:UIControlStateNormal]; + } + + + +} + +#pragma mark - ������������ +- (IBAction)isCache:(UISwitch *)sender { + [[NSUserDefaults standardUserDefaults] setBool:sender.isOn forKey:@"isOn"]; + + [self getData:sender.isOn url:dataUrl]; +} + +/** + * json������������ + */ +- (NSString *)jsonToString:(NSDictionary *)dic +{ + if(!dic){ + return nil; + } + NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dic options:NSJSONWritingPrettyPrinted error:nil]; + return [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]; +} + +- (void)didReceiveMemoryWarning { + [super didReceiveMemoryWarning]; + // Dispose of any resources that can be recreated. +} +@end -- Gitblit v1.8.0