У меня есть клиент веб-службы SOAP, написанный с помощью Spring-WS. В ответ на запрос входа в систему веб-служба, к которой я подключаюсь, возвращает куки-файл сеанса в заголовке ответа HTTP с маркером в нем. Каждый последующий вызов службы требует, чтобы файл cookie с токеном. Как я могу получить cookie сеанса из ответа, а затем добавить его в заголовок HTTP при последующих вызовах службы?Получение http сеансов cookie в Spring-ws клиента веб-службы мыла
Чтобы обобщить то, что я прошу, как вы извлекаете и вводите файлы cookie с помощью Spring-WS.
Вот фрагмент кода похож на то, что я использую, чтобы позвонить в веб-службы:
MySessionLogon api = new MySessionLogon();
api.setUsername(username);
api.setPassword(password);
MySessionLogonResponse response = (MySessionLogonResponse) getWebServiceTemplate()
.marshalSendAndReceive(
"http://myserver/soapservice.asmx",
api,
new SoapActionCallback("http://www.myserver.com/MySession_Logon"));
return response;
Я искал в интернете и читать много вещей, которые кажутся близко к тому, что мне нужно, но Я не видел хороший способ получить ценность куки, которые мне нужно использовать. Любая помощь будет оценена, спасибо заранее.
Спасибо за ответ VirtualTroll. Только примечание, marshalSendAndReceive не принимает четыре параметра, как показано в вашем ответе. Я предполагаю, что мне нужно будет использовать один из других методов SendAndReceive, предоставляемых WebServiceTemplate. – Woody
Обновлен мой ответ. Могли ли вы решить проблему с помощью решения? – VirtualTroll
Извините за долгую задержку, но я решил проблему, выбрав другой маршрут. Я реализовал решение, подобное http://stackoverflow.com/questions/25189129/spring-ws-client-set-cookie-for-authentication, с ценным вводом данных: и среди прочих. Еще раз спасибо за ваш вклад, хотя я не пошел так. @VirtualTroll –
Woody