2014-02-17 44 views
2

我最近将项目更新为AFNetworking的2.0,看起来AFHTTPClient文件丢失。对现有项目的AFNetworking 2.0更新

我看了在以下几点:https://github.com/AFNetworking/AFNetworking/wiki/AFNetworking-2.0-Migration-Guide

看来我现在将不得不使用AFHTTPRequestOperation?

如果是的话我该如何修改下面这段代码到新的AFHTTPRequestOperation?

NSURL *url = [NSURL URLWithString:WEB_SERVICE_BASE_URL]; 

     AFHTTPClient *client = [[AFHTTPClient alloc] initWithBaseURL:url]; 
     [client registerHTTPOperationClass:[AFJSONRequestOperation class]]; 
     [client setDefaultHeader:@"Accept" value:@"application/json"]; 
     [client postPath:LOGIN_PATH parameters:[NSDictionary dictionaryWithObjectsAndKeys:self.userNameOrEmail.text ,@"userNameOrEmail",self.password.text,@"password", nil] 
       success:^(AFHTTPRequestOperation *operation, id responseObject) 
     { 
      bool success = [[responseObject valueForKeyPath:@"success"] boolValue]; 
      NSString *displayMessage = [responseObject valueForKeyPath:@"displaymessage"]; 

      if (success) { 
       NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
       [defaults setObject:self.userNameOrEmail.text forKey:@"userNameOrEmail"]; 
       [defaults setObject:self.password.text forKey:@"password"]; 

    //    [Flurry setUserID:self.userNameOrEmail.text]; 
       [SVProgressHUD showSuccessWithStatus:displayMessage]; 
       [self dismissViewControllerAnimated:YES completion:nil]; 
      } else { 
       [SVProgressHUD showErrorWithStatus:displayMessage]; 
      }  
     } 
       failure:^(AFHTTPRequestOperation *operation, NSError *error) 
     { 

      NSLog(@"error is: %@", error); 

      [SVProgressHUD showErrorWithStatus:MSG_SERVER_ERROR]; 
     }]; 

更新:我做了以下内容:

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; 
     NSDictionary *parameters = [NSDictionary dictionaryWithObjectsAndKeys:self.userName.text ,@"user", self.email.text, @"email",self.password.text,@"password", nil]; 
     [manager POST:WEB_SERVICE_BASE_URL parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject) { 
      bool success = [[responseObject valueForKeyPath:@"success"] boolValue]? @"YES" : @"NO"; 

      NSString *displayMessage = [responseObject valueForKeyPath:@"displaymessage"]; 

      if (success) { 
       [SVProgressHUD showSuccessWithStatus:displayMessage]; 
       [self.navigationController popToRootViewControllerAnimated:YES]; 
      } else { 
       [SVProgressHUD showErrorWithStatus:displayMessage]; 
      } 
     } failure:^(AFHTTPRequestOperation *operation, NSError *error) { 
      [SVProgressHUD showErrorWithStatus:MSG_SERVER_ERROR]; 
     }]; 
+0

你更新看起来是正确的;它工作吗?如果是这样,你应该发布它作为你自己问题的答案。 –

回答

1
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; 
     NSDictionary *parameters = [NSDictionary dictionaryWithObjectsAndKeys:self.userName.text ,@"user", self.email.text, @"email",self.password.text,@"password", nil]; 
     [manager POST:WEB_SERVICE_BASE_URL parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject) { 
      bool success = [[responseObject valueForKeyPath:@"success"] boolValue]? @"YES" : @"NO"; 

      NSString *displayMessage = [responseObject valueForKeyPath:@"displaymessage"]; 

      if (success) { 
       [SVProgressHUD showSuccessWithStatus:displayMessage]; 
       [self.navigationController popToRootViewControllerAnimated:YES]; 
      } else { 
       [SVProgressHUD showErrorWithStatus:displayMessage]; 
      } 
     } failure:^(AFHTTPRequestOperation *operation, NSError *error) { 
      [SVProgressHUD showErrorWithStatus:MSG_SERVER_ERROR]; 
     }];