![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 3.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam!
Jeśli wątek jest w złej kategorii, to proszę o przeniesienie. Od wczoraj walczę, a dziś cały dzień googluję. Z braku odpowiedzi szukam jej wśród Was! Jak zasymulować poprzez cURL takie coś?: URL: https://remktg.arval.com/arval/jsf/arval/sa...SalesList.faces DANE POST: AJAXREQUEST=_viewRoot&salesForm=salesForm&salesForm%3AID_da7b784bad57be3612d0c2cd5a4b8e75=&javax.faces.ViewState=j_id5&bla=35540&salesForm%3AeventList%3A0%3AID_38bece6b99f262bc4ebb462435e83=salesForm%3AeventList%3A0%3AID_38bece6b99f262bc4ebb462435e83& Gdy ręcznie wchodzę w wybraną aukcję w przeglądarce (aukcje pojazdów), podglądając dane przesyłane między przeglądarką a serwerem uzyskuję dokładnie takie coś jak podałem. Pełny nagłówek: https://remktg.arval.com/arval/jsf/arval/sa...SalesList.faces POST /arval/jsf/arval/sales/BuyerSalesList.faces HTTP/1.1 Host: remktg.arval.com User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:18.0) Gecko/20100101 Firefox/18.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: pl,en-us;q=0.7,en;q=0.3 Accept-Encoding: gzip, deflate Content-Type: application/x-www-form-urlencoded; charset=UTF-8 Referer: https://remktg.arval.com/arval/jsf/arval/sa...SalesList.faces Content-Length: 251 Cookie: ********* Connection: keep-alive Pragma: no-cache Cache-Control: no-cache AJAXREQUEST=_viewRoot&salesForm=salesForm&salesForm%3AID_da7b784bad57be3612d0c2cd5a4b8e75=&javax.faces.ViewState=j_id3&bla=35540&salesForm%3AeventList%3A0%3AID_38bece6b99f262bc4ebb462435e83=salesForm%3AeventList%3A0%3AID_38bece6b99f262bc4ebb462435e83& HTTP/1.1 200 OK Date: Tue, 15 Jan 2013 19:16:30 GMT X-Powered-By: JSF/1.2 Ajax-Response: redirect Cache-Control: no-cache, must-revalidate, max_age=0, no-store Expires: 0 Pragma: no-cache Location: /arval/jsf/arval/sales/BuyerSalesListPreview.faces Vary: Accept-Encoding Content-Encoding: gzip Content-Type: text/xml;charset=UTF-8 Content-Language: en-US Transfer-Encoding: chunked Set-Cookie: *********************** Staram się podejrzeć co jest wysyłane po kliknieciu w link i to samo przekazać z uzyciem cURL. Niestety nie daje to efektu. Zamiast listy aut danej aukcji otrzymuję komunikat: Issue on navigation Oops…. A problem occurred. To resume a normal navigation, please click one of the links on the above menu. A Opcja CURL_HEADER wyświetla mi nagłówek: HTTP/1.1 302 Found Date: Tue, 15 Jan 2013 18:59:39 GMT Cache-Control: private,no-cache,no-store X-UA-Compatible: IE=EmulateIE7 X-Powered-By: JSF/1.2 Location: https://remktg.arval.com/arval/ErrorPage.faces Content-Length: 0 Vary: Accept-Encoding Content-Type: text/plain Content-Language: en-US Set-Cookie: ************************************;expires=Tue, 15-Jan-2013 19:04:43 GMT;path=/;secure HTTP/1.1 200 OK Date: Tue, 15 Jan 2013 18:59:39 GMT Cache-Control: private,no-cache,no-store X-UA-Compatible: IE=EmulateIE7 X-Powered-By: JSF/1.2 Vary: Accept-Encoding Content-Type: text/html; charset=UTF-8 Content-Language: en-US Transfer-Encoding: chunked Set-Cookie: *****************************************;expires=Tue, 15-Jan-2013 19:04:43 GMT;path=/;secure Nie jest dla mnie problemem symulowanie curlem przekazywania danych z formularzy obsługiwanych przez JS, lecz tutaj nie są przekazywane typowe dane POST (chyba). PRóbując to podstawić i uruchomić (nawet niektóre ze zmiennych z wyrażenia AJAXREQUEST=_viewRoot&salesForm=salesForm&salesForm%3AID_da7b784bad57be3612d0c2cd5a4b8e75=&javax.faces.ViewState=j_id3&bla=35540&salesForm%3AeventList%3A0%3AID_38bece6b99f262bc4ebb462435e83=salesForm%3AeventList%3A0%3AID_38bece6b99f262bc4ebb462435e83& sczytuję funkcją preg_match i podmieniam na takiej jakie skrypt otrzymuje po zalogowaniu, ale to nie pomaga). Dane w tym ciągu znaków są dla mnie zrozumiałe i występują w źródle strony którą otrzymuje skrypt po zalogowaniu. Mam doświadczenie w sczytywaniu danych z otrzymanej strony i przekazywanie ich w poleceniu POST, lecz pierwszy raz spotykam się z czymś takim AJAXREQUEST=..... Jeśli ktoś byłby w stanie podpowiedzieć, pomóc, to bardzo proproszę. Dziekuję. Witam! Nikt nie ma pomysłu? Sam rozwiązałem zagadkę (IMG:style_emoticons/default/specool.gif) Dla wszystkich potomnych napiszę: Okazało się, że jednak żanych cudów nie ma. Odczytane dane POST za pomocą Live HTTP Headers (czy Firebuga) i podane tu w poście po prostu trzeba było wysłać poprzez curl. Problem był w tym, że skrypt nie był przekierowywany przez serwer do kolejnego adresu, mimo włączonej opcji CURLOPT_FOLLOWLOCATION. Trzeba było ręcznie wywołać poprzez curl kolejną podstronę (podejrzaną w nagłówkach, lub poprzez przy ręcznym buszuowaniu po serwisie). Ale to nie koniec. Okazało się że do tego trzeba jeszcze wyłączyć opcję CURLOPT_POST -> czyli przesyłanie danych metodą POST. Niby prosta sprawa, ale musiałem zrobić sobie parę dni przerwy po 2 dobowej walce z problemem. Siadłszy dziś "na czysto" do sprawy w końcu to odkryłem. Także potwierdza się. Czy JavaScript, czy AJAX, czy inne cudo. Aby poradzić curlem, trzeba śledzić z użyciem ww aplikacji co jest submitowane na jaki url i naśladować to. + czasem jeszcze żąglowanie opcjami + czasem ręczne przechodzenie po kolejnych adresach, mimo włączonego FOLLOWLOCATION. Pozdrawiam! (IMG:style_emoticons/default/medieval.gif) (IMG:style_emoticons/default/guitar.gif) Ten post edytował biocian 15.01.2013, 20:37:51 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 24.08.2025 - 01:34 |