0
次のコードで非同期的にHTTPSサイトに接続しようとしています。
何も起こりません。 setRequestDidFinishSelectorまたはsetRequestDidFailSelectorは決して呼び出されません。
- 私は、要求を同期に設定してテストしようとしました。
- ASIHTTPRequestのドキュメントで__blockを試してみましたが、これも機能します。失敗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]);
}
これは誤植でした...ごめんなさい!実際にsetQueueDidFinishSelectorはコード内のsetRequestDidFinishSelectorです。クラッシュはまだ起こっています:(今のところ、私はインライン__blockを使って終了したか、失敗したステータスを委譲してしまいましたが、なぜこれが非同期的にクラッシュしたのか分かりました。 –