Временная ошибка Apache HttpClient: NoHttpResponseException
У меня есть веб-сервис, который принимает метод POST с XML. Он работает нормально, а затем по случайному случаю не может связаться с сервером, выбрасывая IOException с сообщениемThe target server failed to respond
, Последующие звонки работают нормально.
В основном это происходит, когда я делаю несколько звонков, а затем оставляю свое приложение без дела около 10-15 минут. первый звонок, который я делаю после этого, возвращает эту ошибку.
Я попробовал пару вещей ...
Я настраиваю обработчик повторов как
<code>HttpRequestRetryHandler retryHandler = new HttpRequestRetryHandler() { public boolean retryRequest(IOException e, int retryCount, HttpContext httpCtx) { if (retryCount >= 3){ Logger.warn(CALLER, "Maximum tries reached, exception would be thrown to outer block"); return false; } if (e instanceof org.apache.http.NoHttpResponseException){ Logger.warn(CALLER, "No response from server on "+retryCount+" call"); return true; } return false; } }; httpPost.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, retryHandler); </code>
но эта повторная попытка не была вызвана. (да, я использую правильное предложение instanceof). При отладке этот класс никогда не вызывается.
Я даже пытался настроитьHttpProtocolParams.setUseExpectContinue(httpClient.getParams(), false);
но бесполезно. Может кто-нибудь подсказать, что я могу сделать сейчас?
IMPORTANT Помимо выяснения, почему я получаю исключение, одна из важных проблем, с которыми я сталкиваюсь, заключается в том, почему здесь не работает ретранслятор?