Я использую DefaultHttpClient для получения данных с сервера, но исключение NoHttpResponseException происходило время от времени.
Я ссылался на этот пост ссылка , а
HttpProtocolParams.setUseExpectContinue(httpClient.getParams(), false);
у меня не работает.
Я использую HttpRequestRetryHandler , чтобы избежать этой проблемы, и это работает, но я не думаю, что это идеальный метод, поскольку сетевой пакет данных сбрасывается tcpdump на сервере сторона.
Я обнаружил, что при возникновении исключения NoHttpResponseException при подключении к серверу используется новый порт вместо старого порта, использовавшегося до этого запроса (HttpClient не использует старое соединение). Но я не нашел никакого пакета данных о трехстороннем рукопожатии tcp, когда новый порт со стороны клиента соединялся со стороной сервера. Но, основываясь на теории tcp, рукопожатие является обязательным шагом при создании нового соединения.
Я не знаю, это баг андроида (я использую андроид 2.3 для тестирования), у кого-нибудь есть идея? Заранее спасибо.