Olingo 클라이언트 라이브러리의 코드를 살펴본 후이 문제를 해결했습니다.
ODataClient
은 Configuration
속성을 가지며, HttpClientFactory
매개 변수를 갖습니다. DefaultHttpClientFactory
을 확장 한 클래스를 만들어야하고 HttpClient
을 업데이트하고 정책 변경을 다시 시도하는 메서드를 재정의해야했습니다.
전체 코드는 다음과 같습니다.
private class RequestRetryHttpClientFactory extends DefaultHttpClientFactory {
private final int HTTP_REQUEST_TIMEOUT = 2 * 60 * 1000;
@Override
public org.apache.http.impl.client.DefaultHttpClient create(HttpMethod method, URI uri) {
final HttpRequestRetryHandler myRetryHandler = new HttpRequestRetryHandler() {
@Override
public boolean retryRequest(IOException e, int i, HttpContext httpContext) {
Log.d(getClass().getSimpleName(), "RETRY REQUEST");
return false;
}
};
final DefaultHttpClient httpClient = super.create(method, uri);
HttpConnectionParams.setConnectionTimeout(httpClient.getParams(), HTTP_REQUEST_TIMEOUT);
HttpConnectionParams.setSoTimeout(httpClient.getParams(), HTTP_REQUEST_TIMEOUT);
httpClient.setHttpRequestRetryHandler(myRetryHandler);
return httpClient;
}
}
나는 이것을 oDataClient에 다음과 같이 추가했습니다.
ODataClient oDataClient = ODataClientFactory.getV4();
oDataClient.getConfiguration().setHttpClientFactory(new RequestRetryHttpClientFactory());
ODataEntityCreateRequest<ODataEntity> req = oDataClient.getCUDRequestFactory()
.getEntityCreateRequest(uri, oDataEntity);
이 정보가 도움이되기를 바랍니다.
코드를 공유하십시오. –