1

私のリクエストは

        NSURL *requestUrl = [NSURL URLWithString:url];

    if(request_) {
        [request_ setDelegate:nil];
        [request_ release];
    }
    request_ = [[ASIFormDataRequest requestWithURL:requestUrl] retain];
    [request_ setDelegate:self];
    [request_ setRequestMethod:@"GET"];
    [request_ setTimeOutSeconds:HTTP_TIME_OUT];
    [request_ startAsynchronous];

トップバーのネットワークアクセスインジケータが回転し、数秒後に消えるので、通話が始まります。しかし、どちらのデリゲートメソッドも

- (void)requestFinished:(ASIHTTPRequest *)request

また

- (void)requestFailed:(ASIHTTPRequest *)request

呼び出されていません。何がうまくいかなかったのでしょうか?

前もって感謝します。

PS:時々、何らかの問題のために、サーバーは「500内部サーバーエラー」を返します。しかし、その場合でも、代表者はすべきではありません

- (void)requestFailed:(ASIHTTPRequest *)request

呼ばれる?

4

2 に答える 2

4

あなたはそれをチェックするためにブロックを使うことができます。

これが同じ例です:

 NSURL *url = [NSURL URLWithString:@"http://allseeing-i.com"];
   __block ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
   [request setCompletionBlock:^{
      // Use when fetching text data
      NSString *responseString = [request responseString];

      // Use when fetching binary data
      NSData *responseData = [request responseData];
   }];
   [request setFailedBlock:^{
      NSError *error = [request error];
   }];
   [request startAsynchronous];

これがお役に立てば幸いです。

于 2012-06-01T06:57:02.157 に答える
1

ASIHTTPRequestDelegateクラスがプロトコルに準拠していることを確認してください。

@interface YourClass : ... <ASIHTTPRequestDelegate>
于 2012-06-01T06:52:08.397 に答える