2015-08-11 2 views
1

Я программирую чат приложения, и я хочу выйти из системы, когда пользователь завершает приложение из фона. Для этого я отправляю сообщение для запроса, чтобы удалить пользователя из базы данных. Однако HTTP POST не посылает, когда я использую его в applicationWillTerminate:(UIApplication *)applicationОтправлять HTTP POST, когда приложение завершено

Это весь код, который я попробовал:

NSString *User_To_Be_Deleted = [[NSUserDefaults standardUserDefaults] objectForKey:@"isLogin"]; 
NSMutableURLRequest *DeleteRequest = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"http://192.168.1.8/Chatiw/Logout_Delete.php"] cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:30]; 



NSString *data_to_be_sent = [NSString stringWithFormat:@"nickname=walidoss"]; 
[DeleteRequest setHTTPMethod:@"POST"]; 
[DeleteRequest setHTTPBody:[data_to_be_sent dataUsingEncoding:NSUTF8StringEncoding]]; 



NSURLConnection *myconnection = [[NSURLConnection alloc] initWithRequest:DeleteRequest delegate:self]; 

[[NSUserDefaults standardUserDefaults] removeObjectForKey:@"isLogin"]; 

NSURLCONNECTION не работает, когда приложение завершается любое предложение или помощь пожалуйста.

+0

У вас отсутствует запуск сразу после установки делегата. – Claudio

+0

Я не понял вас – SniperCoder

+0

Получают вызов методы делегата NSURLConnection, такие как didReceiveResponse: (NSURLResponse *) ответ – Vani

ответ

0

Заменить:

NSURLConnection *myconnection = [[NSURLConnection alloc] initWithRequest:DeleteRequest delegate:self]; 

для этого:

NSURLConnection *myconnection = [[NSURLConnection alloc] initWithRequest:DeleteRequest delegate:self startImmediately:YES]; 

EDIT

Попробуйте этот код:

[[[NSURLSession sharedSession] dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) { 
    if(!error){ 
     //your code here on success 
    } 
}] resume]; 
+0

Получение той же проблемы – SniperCoder

0

Я была такая же я ssue и узнать решение. Ниже.

NSURLResponse* response = nil; 
NSData *data = [data_to_be_sent dataUsingEncoding:NSUTF8StringEncoding]; 
[NSURLConnection sendSynchronousRequest:DeleteRequest returningResponse:&response error:nil]; 

Надеюсь, он сработает для вас.