Сброс соединения при попытке запроса POST с помощью DefaultHttpClient
У меня есть значение строки, которую я получаю от вызова службы в своем коде Java-сервера. Когда я получаю значение строки, я хочу сделать запрос поста и передать строку в виде строки base 64 в кодировке URL-адреса конечной точке.
Проблема в том, что я получаю Исключение Сокета: Ошибка сброса соединения. Я использую HttpClient 4.5.2 и IBM Websphere (Rational Application Development). Более подробная ошибка:
DefaultHttpClient org.apache.http.impl.client.DefaultRequestDirector tryConnect I/O Exception (java.net.SocketException) caught when connecting to {s} -> https://foo.bar:443: Connection reset
Java-код:
public ActionForward executeShowFormView(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) throws Exception
{
var stringResponse = serviceCall.getStringResponse();
DefaultHttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost(serviceCall.getEndpointUrl());
StringEntity entity = new StringEntity("response=" + stringResponse, ContentType.APPLICATION_TYPE_URLENCODED);
post.setEntity(entity);
HttpResponse response1 = client.execute(post);
}
Что я могу сделать, чтобы исправить ошибку?
0 ответов
В моем случае я использовал метод отправки httpclient. Я установил значение заголовка запроса как
post.setRequestHeader("Content-type", "text/xml; charset=ISO-8859-1").
Мое приложение было запущено в производство и успешно работало в течение 1 года. Внезапно он перестал работать, и я получил javax.net.ssl.SSLProtocolException: сброс соединения
Исправить:
Я изменился post.setRequestHeader("Content-Type", "application/xml")
Это решило мою проблему.