2014-10-07 2 views
1

Я использую сторонний веб-сервис с использованием заглушки AXIS2. Основной метод, который я использую отлично работает и имеет под подпись:Извлечь куки из ответа SOAP с помощью AXIS2

boolean isValidUser(username, password); 

вебсервис должна возвращать строку (маркер) в заголовках ответа, как печенье: - WSToken

Но я не могу найти какой-либо метод для извлечения заголовков и файлов cookie из ответа. На самом деле нет объекта HTTPResponse для извлечения файлов cookie!.

Я попробовал этот код:

MessageContext context = stub._getServiceClient().getLastOperationContext().getMessageContext(WSDLConstants.MESSAGE_LABEL_IN_VALUE); 
Object response = context.getProperty("response"); 

Но она возвращает нулевое значение, поскольку нет такого свойства в контексте. Контекст имеет ниже свойства:

transport.http.statusCode 
CHARACTER_SET_ENCODING 
TRANSPORT_HEADERS 
org.apache.axiom.om.util.DetachableInputStream 
messageType 
ContentType 
TRANSPORT_IN 

Как я могу получить печенье под названием «WSToken» из ответа с помощью заглушки?

+0

Может быть, вы должны использовать обработчики оси для визуализации всего содержимого мыла, чтобы получить токен. – Riadh

+0

Вы отлаживали ответ с чем-то вроде curl или soap-ui, так что вы действительно уверены, что необходимый заголовок присутствует? –

ответ

0

Свойство TRANSPORT_HEADERS должно предоставить вам заголовки HTTP, которые у вас есть. Затем вы можете посмотреть заголовки Set-Cookie.

+0

Я могу получить некоторые файлы cookie, используя заголовок «Set Cookie». НО желаемые файлы cookie не отображаются вообще. Однако желаемые файлы cookie принимаются, когда веб-служба вызывается с использованием кода .NET вместо Java. –

Смежные вопросы