Witam!
Aktualnie rozwiązuje problem który polega na przesłaniu metodą POST danych do wyszukiwarki CEIDG ( https://prod.ceidg.gov.pl/CEIDG/CEIDG.Public.UI/Search.aspx# )
Pobranie strony i jej parsowanie jest proste za pomoca JSoup. Lecz schody zaczynają się w metodzie POST i tym co ona zwraca. Jest to dla mnie nie jasne. Jeśli ktoś doświadczony mógłby mnie naprostować byłbym wdzieczny.
// tworzymy obikt klijenta
DefaultHttpClient httpclient = new DefaultHttpClient();
try {
// tworzymy zapytanie do storny
HttpGet httpget = new HttpGet("https://prod.ceidg.gov.pl/CEIDG/CEIDG.Public.UI/Search.aspx");
// wywołujemy (wpisanie w przegladarke adresu ^^
HttpResponse response = httpclient.execute(httpget);
ResponseHandler<String> handler = new BasicResponseHandler();
// Pobiermy źródło strony
String body = handler.handleResponse(response);
Document doc = Jsoup.parse(body);
// Parsujemy strone i wyciagamy CAPTHA
Element captha = doc.getElementById( "MainContent_ctrlCaptcha" );
String capthaString = captha.attr("src");
capthaString = capthaString.substring(0, capthaString.length()-7 );
String linkToCaptha = "https://prod.ceidg.gov.pl/CEIDG/CEIDG.Public.UI/"+capthaString;
System.out.println( linkToCaptha );
//Pobieramy CAPTHA z internetu i wyswietlamy
BufferedImage img = ImageIO.read(new URL(linkToCaptha));
JFrame frame = new JFrame("a");
frame.getContentPane().add(new JLabel(new ImageIcon(img)));
frame.setSize(300, 300);
frame.setAlwaysOnTop(true);
frame.show();
// Wyswietlamy status połączenia: zazwyczaj HTTP/1.1 200 OK
System.out.println("Login form get: " + response.getStatusLine());
EntityUtils.consume(entity);
//Tworzymy Metode post gdzie wypoalniamy FORME
Response res = Request.Post("https://prod.ceidg.gov.pl/CEIDG/CEIDG.Public.UI/Search.aspx")
.bodyForm(Form.form()
.add("ctl00$MainContent$txtNip", "")
.add("ctl00$MainContent$txtPartnershipNIP", "")
.add("ctl00$MainContent$txtKrs", "")
.add("ctl00$MainContent$txtFirstName", "")
.add("ctl00$MainContent$txtProvince", "")
.add("ctl00$MainContent$txtCity", "")
.add("ctl00$MainContent$txtStreet", "")
.add("ctl00$MainContent$txtLocalNumber", "")
.add("ctl00$MainContent$txtDateOfCessationOfBusinessActivity", "")
.add("ctl00$MainContent$cbIsArchival", "")
.add("ctl00$MainContent$tbCaptcha", capthaToProcess)
.add("ctl00$MainContent$txtRegon", "")
.add("ctl00$MainContent$txtPartnershipREGON", "")
.add("ctl00$MainContent$txtLastName", "Janic")
.add("ctl00$MainContent$tbCaptcha", capthaToProcess).build())
.execute();
// Pobieramy źródło odpowiedzi
response = res.returnResponse();
body = handler.handleResponse(response);
// Wyswitlamy status
System.out.println("Login form get: " + response.getStatusLine());
EntityUtils.consume(entity);
System.out.println( body );
I co należy zrobić dalej? Czy ktoś może mi z tym pomóc?
Czy można przesłać nie pełną formę??