2012-02-19 4 views
0

대부분 failMethod으로 끝나면 오류 메시지에 Request timed out과 많은 전문 용어가 표시됩니다. 왜 이런거야? 그것을위한 해결책이 있습니까? 나는 일반적으로 말하는 것을 의미요청 시간 초과 요청 - ASIHTTPRequest - 코드 제공

[self setNetworkQueue:[ASINetworkQueue queue]]; 
[[self networkQueue] setDelegate:self]; 
[[self networkQueue] setShouldCancelAllRequestsOnFailure:NO]; 
[[self networkQueue] setRequestDidFinishSelector:@selector(successMethod:)]; 
[[self networkQueue] setRequestDidFailSelector:@selector(failMethod:)];  
ASIHTTPRequest *r = [ASIHTTPRequest requestWithURL:[NSURL URLWithString:@"http://www.example.com/wenb"]]; 
[r setUseKeychainPersistence:YES]; 
[[self networkQueue] addOperation:r];  
[[self networkQueue] go]; 

답변

3

Request timed outASIHTTPRequest을 사용하고

: 당신이 데이터를 얻으려고 노력하고있는 서버가 응답하는 데 시간이 너무 오래 걸립니다, 그리고 요청이 종료 된 것을 (나는 URL을 가정 게시 한 URL이 도달하려는 URL이 아닙니다.)

두 가지 해결 방법이 있습니다. ASIHTTPRequest은 기본적으로 10 초의 시간이 초과되어 매우 길기 때문에 요청이 오래 걸리는 이유를 파악하는 것이 좋습니다. 다른, 더 쉽게, 옵션, 말 30 초, 당신이 이런 식으로 할 수있는 제한 시간을 늘리는 것입니다 :

[ASIHTTPRequest setDefaultTimeOutSeconds:30] 

는 아마도 그들이 걸릴 시간을 확인하기 위해 전화 이외의 다른 통해 요청을 실행 해, 문제가 무엇인지 더 자세히 파악할 수 있습니다.

+0

글쎄, 이것은 실제 URL이 아닙니다 :). URL을 브라우저 창에 붙여 넣으면 즉시 표시됩니다 (1 초 미만). 내 코드에서 뭔가 잘못하고 있니? – Illep

+0

아니요, 게시 한 코드에 잘못 표시된 부분이 없습니다. 모바일 사파리를 통해 URL에 액세스하여 정보를 좁혀보세요. 정보가로드되면 앱에 문제가 있다는 것을 알게되며, 알 수없는 경우 기기가 켜져있는 네트워크에 문제가 있다는 것을 알게됩니다. – lxt

1

내게는 이동 통신사에 따라 다릅니다. 나는 동일한 문제를 겪었고 같은 애플리케이션을 사용하는 다른 통신사 네트워크에서 테스트를 마쳤습니다. 네트워크 공급자가 다른 유형의 연결 (프록시)을 사용하고있는 것 같습니다. 전화 로그를 보면 메일 클라이언트와 동일한 오류가 발생할 수 있습니다. 한 가지 해결책은 간단한 NSURLConnectionHTTP 방법을 사용하는 것입니다.

+0

NSURLConnection을 사용하면 내 문제가 해결되며 그 이유는 무엇입니까? – Illep

+0

ASIHTTPRequest는 HTTP POST/GET보다는 스트리밍을 사용하고 있다고 생각합니다. – Chinthaka