From 72f7eccea3cf982f1d4eea79962caa81e9037bb3 Mon Sep 17 00:00:00 2001 From: Gerrit Linnemann Date: Wed, 30 Oct 2013 12:23:20 +0100 Subject: [PATCH] Post-Request nun asynchron --- .../UserInterfaceState.xcuserstate | Bin 20742 -> 20772 bytes ipbc-Client/ipbc-Client/WebserviceClient.h | 1 + ipbc-Client/ipbc-Client/WebserviceClient.m | 51 ++++++++++-------- 3 files changed, 29 insertions(+), 23 deletions(-) diff --git a/ipbc-Client/ipbc-Client.xcodeproj/project.xcworkspace/xcuserdata/gerrit.xcuserdatad/UserInterfaceState.xcuserstate b/ipbc-Client/ipbc-Client.xcodeproj/project.xcworkspace/xcuserdata/gerrit.xcuserdatad/UserInterfaceState.xcuserstate index afe339d527f83606aba95b39e78b373aa87f7b29..ebb949d31767b0667a55df18222f3b5d6180306a 100644 GIT binary patch delta 3125 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 delta 3105 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 B*_r?V diff --git a/ipbc-Client/ipbc-Client/WebserviceClient.h b/ipbc-Client/ipbc-Client/WebserviceClient.h index b54d2aa..e7d0736 100644 --- a/ipbc-Client/ipbc-Client/WebserviceClient.h +++ b/ipbc-Client/ipbc-Client/WebserviceClient.h @@ -13,6 +13,7 @@ NSTimer *updateTimer; NSString *usersIPv4; BOOL isNetworkAvailable; + BOOL isRequestRunning; } -(BOOL)updateDomain; diff --git a/ipbc-Client/ipbc-Client/WebserviceClient.m b/ipbc-Client/ipbc-Client/WebserviceClient.m index 3cc6aa1..54531f9 100644 --- a/ipbc-Client/ipbc-Client/WebserviceClient.m +++ b/ipbc-Client/ipbc-Client/WebserviceClient.m @@ -19,13 +19,24 @@ userInfo: nil repeats: YES]; + isRequestRunning = NO; + isNetworkAvailable = NO; [self checkNetworkAvailability]; } - (void)tick:(NSTimer *)theTimer { - if(isNetworkAvailable) { + if(isNetworkAvailable && !isRequestRunning) { [self updateDomain]; + } else { + // else for logging only + + if(!isNetworkAvailable) { + NSLog(@"no ip update, 'cause network unavailable"); + } + if(isRequestRunning) { + NSLog(@"no ip update, 'cause of active request"); + } } } @@ -82,16 +93,14 @@ } else { NSLog(@"compare stored %@ with %@", storedIPv4, fetchedIPv4); BOOL changed = [storedIPv4 isEqualToString:fetchedIPv4]; - - if(changed) { - [[NSUserDefaults standardUserDefaults] setObject:fetchedIPv4 forKey:@"value.ip.ipv4"]; - } - return changed; } } -(BOOL)doWebServiceUpdate { + NSLog(@"update ip to %@", usersIPv4); + isRequestRunning = YES; + NSString *settingTempName = [[NSUserDefaults standardUserDefaults] stringForKey:@"setting.name"]; NSString *settingTempToken = [[NSUserDefaults standardUserDefaults] stringForKey:@"setting.token"]; @@ -108,25 +117,21 @@ NSData *postData = [NSJSONSerialization dataWithJSONObject:tmp options:0 error:&error]; [request setHTTPBody:postData]; - NSLog(@"update ip to %@", usersIPv4); - //NSURLConnection *connection = [NSURLConnection connectionWithRequest:request delegate:self]; - NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil]; + /*NSData *resultData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil]; + NSString *strData = [[NSString alloc]initWithData:resultData encoding:NSUTF8StringEncoding]; + NSLog(@"resultData: %@", strData);*/ + + [NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *resultData, NSError *error) { + NSString *strData = [[NSString alloc]initWithData:resultData encoding:NSUTF8StringEncoding]; + NSLog(@"resultData: %@", strData); + + // locally save posted ip + [[NSUserDefaults standardUserDefaults] setObject:usersIPv4 forKey:@"value.ip.ipv4"]; + + isRequestRunning = NO; + }]; - NSString *strData = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding]; - NSLog(@"data: %@", strData); return YES; - - /*NSString *post = [NSString stringWithFormat:@"name=%@&token=%@", settingTempName, settingTempToken]; - NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES]; - - NSString *postLength = [NSString stringWithFormat:@"%lu", (unsigned long)[postData length]]; - - NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init]; - [request setURL:[NSURL URLWithString:WS_RESOURCE]]; - [request setHTTPMethod:@"POST"]; - [request setValue:postLength forHTTPHeaderField:@"Content-Length"]; - [request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"]; - [request setHTTPBody:postData];*/ } -(NSString *)fetchIPv4 {