Piszę prostą apkę która komunikuję się z api GUS i po nipie pobiera dane. Używają SOAP którego nie zbyt ogarniam. Udało mi się wygenerować klienta z pliku wsdl, według ich instrukcji. Następnie robię tak jak podają
UslugaBIRzewnPubl service = new UslugaBIRzewnPubl();
service.setHandlerResolver(new SoapHandlerResolver()); //<- doklejanie SID'a do HTTP HEADER
IUslugaBIRzewnPubl port = service.getE3(new AddressingFeature());
String statusUslugi = "StatusUslugi";
String result = port.getValue(statusUslugi);
// logowanie, jezeli sesja wygasla, badx logowanie pierwszy raz
if ((SoapMessageHandler.sessionCookie.equals("")) || (! result.equals("1"))){
String sid = port.zaloguj("abcde12345abcde12345");
SoapMessageHandler.sessionCookie = sid;
}
// przykład wyszukiwania po NIPie
ObjectFactory objectFactory = new ObjectFactory();
JAXBElement<String> nipParam = objectFactory.createParametryWyszukiwaniaNip("1234567890");
ParametryWyszukiwania parametryWyszukiwania = new ParametryWyszukiwania();
parametryWyszukiwania.setNip(nipParam);
String raport = port.daneSzukaj(parametryWyszukiwania);
raport zwraca mi Stringa w postaci
<root>
<dane>
<Regon>jakis regon</Regon>
<RegonLink><a href='javascript:danePobierzPelnyRaport("00000000000","DaneRaportFizycznaPubl", 1);'>00000000</a></RegonLink>
<Nazwa>jakas nazwa firmy</Nazwa>
<Wojewodztwo>jakies wojew</Wojewodztwo>
<Powiat>jakis powiat</Powiat>
<Gmina>jakas gmina</Gmina>
<Miejscowosc>miejscowosc</Miejscowosc>
<KodPocztowy>kod [pcz</KodPocztowy>
<Ulica>jakas uli</Ulica>
<Typ>F</Typ>
<SilosID>1</SilosID>
</dane>
</root>
Chciałbym teraz stworzyć obiekt i wyciągnąć do niego tylko np. regon i nazwę.