2014-10-13 3 views
1

ASIFormDataRequest에서 동기 메서드가있는 API를 호출 할 때마다이 오류가 반환됩니다.이 오류는 'Error Domain = ASIHTTPRequestErrorDomain Code = 2' 요청 시간이 초과되었습니다 "시간 초과 초를 10 초로 설정합니다. 10 초 전에이 오류가 표시됩니다. 하지만 가장 이상한 점은 Asnychronous로 변경했을 때 정상적으로 작동한다는 것입니다. 나는 동기가 응답을 얻을 때까지 모든 것을 차단하고 비동기가 차단하지 않는다는 것을 알지만, 다른 방법으로는 무엇이 다른지, 그리고 왜 이것이 내 사건에서 일어나는 지 알아야한다. 여기 아래 코드는 내가하는 일의 코드입니다. 친절하게 나에게 제안하거나 왜 이런 일이 일어 났는지 안내 해줍니다. 응답을 미리 감사드립니다.ASIFormDataRequest에서 동기 호출시 비동기 응답 및 시간 초과 iOS 개발자

NSString *finalStrUrl = [NSString stringWithFormat:@"SomeAPI"]; 
    ASIFormDataRequest *formRequest = [ASIFormDataRequest requestWithURL:[NSURL URLWithString:finalStrUrl]]; 
    [formRequest setTimeOutSeconds:10]; 
    [formRequest setRequestMethod:@"GET"]; 
    [formRequest setAllowCompressedResponse:NO]; 
    [formRequest setDefaultResponseEncoding:NSUTF8StringEncoding]; 

경우 __IPHONE_OS_VERSION_MAX_ALLOWED> = __IPHONE_4_0

[formRequest setShouldContinueWhenAppEntersBackground:YES]; 

ENDIF

[formRequest setDelegate:self]; 
    [formRequest startAsynchronous]; 

참고 :이 모든 휴대 전화 연결에서 일어나는.

+0

가 [ASIHTTPRequest] (http://allseeing-i.com/ASIHTTPRequest/)이 아니오 경우가 있으니주의하시기이 페이지에 더 많은 정보를 얻을 새로운 작업을 위해 더 이상 지원되거나 권장되지 않습니다. – zaph

+0

@Zaph 감사합니다. iOS 7 또는 8에 대해 이야기하고 있습니까? – josh

+0

이것은 iOS 3.0 이상을 지원합니다. – josh

답변

1

시간 제한 간격을 변경하려면 다음 코드를 사용하십시오. 이 코드는 05 초 제한 시간을 설정합니다 :

[request setTimeOutSeconds:05] 


[request setNumberOfTimesToRetryOnTimeout:2]; 

http://allseeing-i.com/ASIHTTPRequest/How-to-use

+0

고마워, 내가 제안하는 것과 같은 비동기 또는 동기화를 사용해야합니까? – josh

+0

[startSynchronous 요청]; – Sport

+0

좋아,하지만 같은 결과를 시도하고 미안이 모든 일이 셀룰러 연결에 일어난다는 것을 언급하지 않았다. 나는 셀룰러와 관련이 없지만 셀룰러에서만 일어난다는 것을 안다. – josh

관련 문제