Chamada de serviço Web a partir de https e parse respondeu dados XML em Java
-
19-09-2019 - |
Pergunta
Eu preciso de conexão com https url, enviar o meu esquema de solicitação e eu vou conseguir alguma resposta XML de serviço Web.
Para https url conexão que estou usando:
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");
Assim, a partir do código acima estou recebendo XML respondeu através de um servidor. Agora a minha pergunta é qual seria o melhor analisador para me para analisar respondeu dados XML para o meu Simple Object Java.
Eu arregalou um monte sobre isso, e obter várias soluções, mas eu tenho confundir para escolher um apropriado.
se alguém tiver sugestão com alguma amostra de exemplo, em seguida, forneça ..
Obrigado antecipadamente ...
Editar : Acima https resposta não é um sabão
Outras dicas
Se este é um serviço SOAP, então você deve estar usando uma API cliente SOAP em vez como Spring-WS ou JAX-WS.
Nós usamos a biblioteca Metro para isso, o que requer Java 1.5 e está incluído no Java 6.
Você começa então uma árvore DOM para o resultado, que pode então ser facilmente postprocessed.
Nós usamos IntelliJ IDEA para converter o WSDL para a fonte Java usando Metro.
Gostaria de sugerir ter um olhar para Castor ( http://www.castor.org/ xml-mapping.html ) - é uma maneira extremamente simples para mapear o XML para POJOs. Ele gera as classes Java com base no seu esquema XML (no seu caso o arquivo WSDL).
Quando você terminar de analisar a resposta é tão simples como:
StringReader sr = new StringReader(inMessageString);
YourSoapResponse response = (YourSoapResponse)Unmarshaller.unmarshal(YourSoapResponse.class, sr);
Castor é relativamente rápido (uma vez que é aquecido), mas se a sua resposta XML são "enorme" pode ser necessário reconsiderar e usar Stax ( http://stax.codehaus.org/Home ), por exemplo.