2015-04-29 41 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";