0

ASIHTTPRequestrequestFinishedを発生させたときにもっと気楽にカスタマイズしたいと思います。特に、の場合は、200の場合はrequestFinishedが呼び出されます。それ以外のステータスコードやネットワークレベルの障害については、requestFailedが必要です。既定の機能をきれいに上書きする方法はありますか、またはASIHTTPRequestを変更しようとするとワームの缶を開けますか?それをきれいにする方法があれば、それはどこですか?ASIHTTPRequestのリクエスト完了済み、リクエスト失敗条件をカスタマイズする

答えて

1

はあなたがそれを必要としない場合でも、全体のレスポンスボディを受けています。この場合は、ここでASIHTTPRequest.m

- (void)reportFinished 
{ 
    if (self.responseStatusCode !=200){ 
    //this way, you can get error message you want in requestDidFailed:. 
    return [self failWithError:[NSError errorWithDomain:@"Failed" code:ASIConnectionFailureErrorType userInfo:[NSDictionary dictionaryWithObjectsAndKeys:@"Failed to get connection",NSLocalizedDescriptionKey,nil]]]; 
    } 

    ... 
    ... 
} 
+0

でのコードの一部を追加してみてください。 –

+0

あなたが正しいかもしれません。しかし、あなたがそれを必要としないので、それをすることに害はありません。そして、もし失敗すれば、そのメソッドで 'responseString'をオーバーライドすることができます。 – HelmiB

+0

うん、これは動作します。 –

1

サブクラスASIHTTPRequest、それは最初のそれは200

0

ない場合はASIHTTPRequestDelegate、ヘッダ辞書のrequest:didReceiveResponseHeaders:方法を実装する必要があり、障害のデリゲートを呼び出し、responseStatusCodeをチェックする必要があり除き、既存のものが何を行い、独自のreportFinished方法を提供応答コードを含める必要があります。

値が適切でない場合は、[request failWithError:error]を呼び出してください。 エラーは、たとえばASIRequestCancelledErrorです。

この場合、すべての応答本文を受け取る必要はありません。

関連する問題