2017-01-19 3 views
0

API가있는 자신의 응용 프로그램과 함께 작업 중이므로 before request calls과 같은 것을 처리하고 싶습니다. 어떤 API가 호출되기 전에 내가 무엇을 확인하고 할 수 있는지, 그 후에 API는 계속 호출 할 것임을 의미합니다.요청하기 전에 핸들을 호출하십시오. Retrofit 2

예를 들어 settingslogin이라는 2 개의 API가 있습니다.

사용자가 로그인하려면 api login을 호출해야합니다. api settings이 전에 전화를 걸지 않았는지 확인하고 싶다면 settings을 먼저 호출하고 완료되면 login으로 전화하십시오.

나는 아래의 초안처럼 일반적으로 검사를 사용하는 경우 중복 코드를 너무 많이 확인하고 작성해야합니다.

if (settingDoesntCalled()){ 
    callSetting(){ 
    onResponse(){ 
     callLogin(); 
    } 
    } 
}else{ 
    callLogin(); 
} 

은 내가 항상 먼저 settings API를 확인하려면 API를 많이 있습니다.

어떤 아이디어라도 도움이됩니다. 감사.

답변

1

Retrofit에는 Interceptors이라는 개념이 있습니다. 원래 네트워크 호출과 동일한 스레드에서 실행되므로 로그인 네트워크 호출인지 여부를 확인한 다음 이전에 설정 네트워크 호출을 실행하십시오.

+0

U 공공 응답 인터셉트 (체인 체인)에서 IOException을 발생시키는 요청을 만들 수 있습니까? – TruongHieu

+1

정확합니다. 또 다른 예는 [여기] (http://stackoverflow.com/questions/28226765/make-a-synchronous-retrofit-call-from-inside-an-okhttp-interceptor)입니다. –

+0

도움 주셔서 감사합니다. 나중에 다시 시도해보고 피드백을 줄 것입니다. – TruongHieu

관련 문제