Вызов веб-службы из https и анализ ответных XML-данных на Java.

StackOverflow https://stackoverflow.com/questions/2432915

Вопрос

Мне нужно подключиться к 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/Главная) например.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top