2012-01-31 5 views
0

코드는 다음과 같습니다. 그러나 10 초가 지나도 시간이 초과되지 않는 이유는 알 수 없습니다. 어떤 생각?ASIHTTPRequest timeout not working

__block ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:sourceURL]; 
         [request setTimeOutSeconds:5.0]; 
         [request setDelegate:self]; 
         [request setCompletionBlock:^{ 
          //some code 
         }]; 

         [request setFailedBlock:^{ 
          //some code 

         }]; 


         self.currentRequest_ = request; 
         [self.currentRequest_ startAsynchronous]; 


    - (void)requestFailed:(ASIHTTPRequest *)request { 
     NSLog(@"FAILED"); 
    } 

답변

1

아마도 요청이 성공적으로 완료 되었습니까?

다른 가능성은 적어도 5 초마다 데이터가 수신되었지만 전체 데이터가 아직 수신되지 않았을 가능성이 있습니다. ASI는 제한 시간 동안 아무것도 수신되지 않을 때만 시간 초과되므로 데이터가 계속 도착하면 요청 시간이 초과되지 않습니다.

+0

아하 ... 나는 그것이 일어난 것입니다 .. 데이터가 끊임없이 끌어 당겨 졌다고 생각합니다. 느린 것입니다. 데이터 수신 여부를 무시하고 멈추는 방법이 있습니까? – xonegirlz

+0

ASIHTTPRequest에 내장 된 것이 없습니다. NSTimer를 직접 설치하는 것이 가장 간단한 방법입니다. – JosephH

0

난 당신이 대신 ASINetworkQueue (NSOperationQueue의 서브 클래스)에 (NSOperation의 서브 클래스 인) 요청을 추가 ... -[ ASIHTTPRequest startAsynchronous]를 호출 생각하지 않습니다. HTH

+0

또한 'ASINetworkQueue'가 일시 중지 상태로 시작되므로 요청을 추가 한 후에는 반드시 [- [ASINetworkQueue go]를 호출하십시오. 그 방법이 무엇인지 찾아 봐야 할지도 모르겠다. 나는 잊는다. – nielsbot

+0

무엇을 의미합니까? – xonegirlz