Вызов веб-службы из https и анализ ответных XML-данных на Java.
-
19-09-2019 - |
Вопрос
Мне нужно подключиться к URL-адресу https, отправить схему запроса, и я получу ответ в формате XML от веб-службы.
Для подключения URL-адреса https я использую:
URL myurl = new URL(httpsURL);
HttpsURLConnection con = (HttpsURLConnection)myurl.openConnection();
con.setDoOutput(true);
con.setDoInput(true);
con.setUseCaches(false);
con.setRequestProperty("Content-type","text/xml");
Итак, из приведенного выше кода я получаю ответ XML с сервера.Теперь мой вопрос: какой синтаксический анализатор лучше всего подойдет для анализа ответных XML-данных в мой простой Java-объект.
Я много размышлял над этим и находил различные решения, но не мог выбрать подходящее.
если у кого-нибудь есть предложение с примером примера, пожалуйста, предоставьте..
Заранее спасибо...
РЕДАКТИРОВАТЬ :Выше https ответ это не мыло
Решение
Другие советы
Если это служба SOAP, вам следует использовать клиентский API SOAP, например Spring-WS или JAX-WS.
Для этого мы используем библиотеку Metro, которая требует Java 1.5 и включена в Java 6.
Затем вы получаете дерево DOM для результата, которое затем можно легко подвергнуть постобработке.
Мы использовали IntelliJ IDEA для преобразования исходного кода WSDL в Java с помощью Metro.
Я бы посоветовал присмотреться к Кастору (http://www.castor.org/xml-mapping.html) — это чрезвычайно простой способ сопоставить XML с POJO.Он генерирует классы Java на основе вашей схемы XML (в вашем случае файла WSDL).
Когда вы закончите анализ, ответ будет таким же простым, как:
StringReader sr = new StringReader(inMessageString);
YourSoapResponse response = (YourSoapResponse)Unmarshaller.unmarshal(YourSoapResponse.class, sr);
Castor работает относительно быстро (после прогрева), но если ваш XML-ответ «огромен», вам, возможно, придется пересмотреть свое решение и использовать Stax (http://stax.codehaus.org/Главная) например.