2015-04-29 67 views
-2

這裏是我的代碼:AFHTTPRequestOperationManager不是叫(沒有反應/無faillure)

[[AFNetworkReachabilityManager sharedManager] startMonitoring]; 
mainManager = [AFHTTPRequestOperationManager manager]; 
mainManager.requestSerializer.timeoutInterval = 30; 

我初始化我AFHTTPRequestOperationManager這樣。

urlToWhere = @"myurl.php"; 
parameters = @{@"user_id": "1"}; 
NSLog(@"a"); 
[mainManager POST:urlToWhere parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject) { 
    NSLog(@"result"); 
} failure:^(AFHTTPRequestOperation *operation, NSError *error) { 
    NSLog(@"error"); 
}]; 
NSLog(@"b"); 

事實是我的a顯示在日誌中,但沒有顯示「result」或「error」,然後顯示b。

AFHTTPRequestOperationManager會閃避嗎?

+1

只有在收到響應或發生錯誤時纔會調用Result和Error。你期望得到的迴應有多大? POST方法是後臺線程中的塊,不會立即顯示。 – emotality

+0

我希望我的代碼在繼續之前等待答案,所以我有\t'dispatch_semaphore_t semaphore = dispatch_semaphore_create(0); \t mainManager.completionQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0);'在它前面,'dispatch_semaphore_wait(信號量,DISPATCH_TIME_FOREVER);'結尾。仍然不起作用 –

+0

'urlToWhere'不是一個有效的URL。這就是爲什麼這不起作用。 – mattt

回答

0

我目前無法評論,所以使用答案選項。不應該像這樣的urlToWhere參數

urlToWhere = @"http://myurl.php";