2011-01-11 3 views
0

Я пытаюсь подключиться к сайту HTTPS асинхронно со следующим кодом.
Абсолютно ничего не происходит. SetRequestDidFinishSelector или setRequestDidFailSelector никогда не вызываются ...
- Я попытался проверить его, установив запрос на синхронный и он работает.
- Я также попытался использовать __block согласно документации ASIHTTPRequest, и он также работает.Ошибка асинхронного запроса с ASIFormDataRequest

Может ли кто-нибудь помочь?

Thx!

- (NSArray*) requestAccessForUser: (NSString*) user 
    withPassword:(NSString*) password 
    { 
    ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:authPageURL]; 
    [request setPostValue:user forKey:@"user"]; 
    [request setPostValue:password forKey:@"pwd"]; 
    [request setRequestMethod:@"POST"]; 
    [request setDelegate:self]; 
    [request setRequestDidFailSelector:@selector(requestFailed:)]; 
    [request setRequestDidFinishSelector:@selector(requestFinished:)]; 
    [request setTimeOutSeconds:30]; 

    //[request startSynchronous]; // <= This works 
    [request startAsynchronous]; // <= This crashes 

} 

- (void)requestFinished:(ASIHTTPRequest *)request{ 
    NSLog(@"requestFinished: %@", [request responseString]); 
} 

- (void)requestFailed:(ASIHTTPRequest *)request{ 
    NSError *error = [request error]; 
    NSLog(@"oops: %@", [error localizedDescription]); 
} 

ответ

0

В своем коде вы устанавливаете селектор setQueueDidFinishSelector вместо setRequestDidFinishSelector. Фактически, если ваш класс соответствует протоколу ASIHTTPRequestDelegate, вам не нужно устанавливать эти селекторы, они будут вызываться по умолчанию.

+0

К сожалению, это была типография ... извините! setQueueDidFinishSelector действительно setRequestDidFinishSelector в моем коде. Сбой все еще происходит :(На данный момент я закончил использование встроенного __блока и делегировал законченный или неудачный статус. Хотел бы я знать, почему это произошло асинхронно, хотя ... –

Смежные вопросы