2015-09-25 66 views
0

我是AFNetworking的新手。我如何執行以下的成功和失敗塊AFNetworking POST方法調用

NSMutableDictionary *rus = [[NSMutableDictionary alloc] init]; 
[rus setValue:@"1211" forKey:@"id"]; 
[rus setValue:@"33" forKey:@"man"]; 
    [[AFHTTPRequestSerializer serializer] requestWithMethod:@"POST" URLString:@"http://mysite.co/service.php" rus]; 

如何在執行上述代碼片段後顯示成功或失敗。

回答

0

requestWithMethod實際上並沒有完成調用,它只是返回給你一個NSMutableURLRequest。您需要接受該請求並進行AFHTTPRequestOperation。您可以在此對象上設置成功/失敗塊,然後運行start方法。

NSMutableDictionary *rus = [[NSMutableDictionary alloc] init]; 
[rus setValue:@"1211" forKey:@"id"]; 
[rus setValue:@"33" forKey:@"man"]; 
NSMutableURLRequest *request = [[AFHTTPRequestSerializer serializer] requestWithMethod:@"POST" URLString:@"http://mysite.co/service.php" parameters:rus]; 
AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request]; 
[operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) { 
    // Code for success 
} failure:^(AFHTTPRequestOperation *operation, NSError *error) { 
    //Code for failure 
}]; 
[operation start]; 

所有這些都說了,你使用的是AFNetworking的過時版本嗎?您引用的方法已棄用。

- (NSMutableURLRequest *)requestWithMethod:(NSString *)method 
          URLString:(NSString *)URLString 
          parameters:(id)parameters 
           error:(NSError *__autoreleasing *)error 

以上是使用的正確方法。你應該傳入一個錯誤對象。

最後,一個更簡單的方法來完成你與AFNetworking 2.0幹什麼低於:

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; 
[manager POST:@"http://mysite.co/service.php" parameters:rus success:^(AFHTTPRequestOperation *operation, id responseObject) { 
    // Code for success 
} failure:^(AFHTTPRequestOperation *operation, NSError *error) { 
    // Code for failure 
}]; 
+0

我正在使用'AFNetworking 2',但我傳遞的參數不在服務器上讀取。因此,我想在發送之前對它進行編碼。我怎樣才能做到這一點 ? – Illep

0

試試這個代碼:

NSMutableDictionary *rus = [[NSMutableDictionary alloc] init]; 
[rus setValue:@"1211" forKey:@"id"]; 
[rus setValue:@"33" forKey:@"man"]; 

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; 
[manager POST:@"http://mysite.co/service.php" parameters:rus success:^(AFHTTPRequestOperation *operation, id responseObject) { 

} failure:^(AFHTTPRequestOperation *operation, NSError *error) { 

}]; 
0
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; 
[manager POST:@"http://mysite.co/service.php" parameters:rus success:^(AFHTTPRequestOperation *operation, id responseObject) { 
    // Code for success 
} failure:^(AFHTTPRequestOperation *operation, NSError *error) { 
    // Code for failure 
}]; 

GitHub的AFNetworking文件

https://github.com/AFNetworking/AFNetworking