Я хочу подключиться к веб-сервису (WS). Однако для взаимодействия с этим веб-сервисом должен быть предоставлен файл cookie.

Пока что у меня есть:

String requiredCookieName = "requiredCookieName";
String requiredCookieValue = getRequiredCookieValue();

// Prepare SOAP message
SOAPMessage soapMessage = MessageFactory.newInstance().createMessage();
soapMessage.getMimeHeaders().addHeader("SOAPAction", getSoapAction());
soapMessage.saveChanges();

// Send SOAP message
SOAPConnection soapConnection = buildSoapConnection();
SOAPBody soapBody = soapConnection
                      // How to add required cookie here before calling WS?
                      .call(soapMessage, getOperationLocation("operationName"))
                      .getSOAPBody();

// Process response...

Как я могу добавить требуемый файл cookie в базовый HTTP-запрос к WS?

1
Stephan 20 Дек 2016 в 13:09

1 ответ

Лучший ответ

Вы можете сделать это, добавив к сообщению соответствующий HTTP-заголовок Cookie (точно так же, как вы уже делаете это для заголовка SOAPAction):

soapMessage.getMimeHeaders().addHeader(
    "Cookie", requiredCookieName + "=" + requiredCookieValue);
1
Andreas Veithen 20 Дек 2016 в 13:52
 – 
Stephan
20 Дек 2016 в 14:07