0

ASIHTTPRequestrequestFinished을 발생시킬 때 더 까다롭게 사용자 정의하고 싶습니다. 특히 의 경우에만 상태 코드가 200 인 경우 requestFinished을 호출하려고합니다. 그 외의 다른 모든 상태 코드 또는 네트워크 수준의 오류에 대해서는 requestFailed이 필요합니다. 기본 기능을 완전히 무시하는 방법이 있습니까? 아니면 ASIHTTPRequest을 수정하여 웜을 열 수 있습니까? 그것을 깨끗하게 할 수있는 방법이 있다면, 그것은 어디에 있습니까?요청 사용자 정의 requestFailed 조건 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하고, 헤더 사전은 IT가 200

0

를 아니라면 당신은 ASIHTTPRequestDelegate의 request:didReceiveResponseHeaders: 방법을 구현해야 실패 대리자를 호출, 그것은 먼저 responseStatusCode를 확인해야합니다 제외하고 하나가하는 기존의 어떤 않는 자신의 reportFinished 방법을 제공 응답 코드가 있어야합니다.

값이 적절하지 않은 경우 [request failWithError:error]으로 전화하십시오. 오류은 예를 들어 ASIRequestCancelledError 일 수 있습니다.

이 경우 모든 응답 본문을 수신 할 필요가 없습니다.

관련 문제