Сброс соединения при попытке запроса 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")

Это решило мою проблему.

Другие вопросы по тегам