2017-08-04 17 views
5

próbuję się zalogować do http://www.investabroadproperties.com/ miejscu za pomocą następującego koduZaloguj Metoda Post formularza ASP.NET przy użyciu Jsoup

Connection.Response loginForm = Jsoup.connect("http://www.investabroadproperties.com/") 
       .method(Connection.Method.GET) 
       .execute(); 

     Document document = Jsoup.connect("http://www.investabroadproperties.com/") 
       .data("ctl00$ctl02$tbEmail", "myemail") 
       .data("ctl00$ctl02$tbPassword", "mypassword") 
       .cookies(loginForm.cookies()) 
       .post(); 

Ale nie jestem w stanie zalogować się na tej stronie. Patrząc na źródło html witryny, widzę, że istnieją pewne pola hidden jak pokazano poniżej, ale z pustymi wartościami. Istnieje również atrybut onsubmit="javascript:return WebForm_OnSubmit();", nie jestem pewien, jak z niego korzystać.

enter image description here

widzę też this post, ale nie mogłem zrozumieć logikę/kod, który jest podany w akceptowanych odpowiedzi (może być to, że będzie jeden pomóc).

Czy ktoś może mi pomóc, w jaki sposób mogę się zalogować na stronie?

Używam java i jsoup.

EDIT

Próbowałem też poniżej kod, ale wciąż nie ma szczęścia

Connection.Response loginForm = Jsoup.connect("http://www.investabroadproperties.com/") 
       .userAgent("Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.112 Safari/535.1") 
       .method(Connection.Method.GET) 
       .execute(); 

     Document doc = loginForm.parse(); 

     Elements hiddenElems = doc.select("input[type=hidden]"); 
     Map<String, String> nameValue = new HashMap<>(); 

     for(Element elem : hiddenElems) { 
      nameValue.put(elem.attr("name"), elem.attr("value")); 
     } 

     Document document = Jsoup.connect("http://www.investabroadproperties.com/") 
       .userAgent("Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.112 Safari/535.1") 
       .data("ctl00$ctl02$tbEmail", "myValidEmail") 
       .data("ctl00$ctl02$tbPassword", "myValidPassword") 
       .data(nameValue) 
       .cookies(loginForm.cookies()) 
       .post(); 
+0

Dlaczego tag java tutaj? – sForSujit

+0

1. Nawet jeśli pole jest puste/ukryte, należy je przesłać. 2. Sprawdź zapytanie pocztowe przeglądarki - zawiera ono dodatkowe pola (z wartościami), takie jak __viewstate. 3. Dodaj swój ciąg agenta użytkownika do swoich żądań. 4. Istnieje niewiele podobnych pytań, takich jak ten - https://stackoverflow.com/questions/31871801/problems-submitting-a-login-form-w-js-/ – TDG

+0

@TDG Proszę zobaczyć zaktualizowany kod. – Junaid

Odpowiedz

3

Poniższe zdjęcie zostało wykonane z narzędzi programistycznych mojej przeglądarce. Jak widać, nadal brakuje niektórych wartości w zapytaniu:

post request

Musisz wysłać wszystkie te wartości do serwera.

Powiązane problemy