Ajax vs Indy

problemy z tworzeniem programów do obsługi sieci, internetu, e-mail itp..

Ajax vs Indy

Nowy postprzez lidamian » sobota, 6 grudnia 2008, 22:15

Witajcie,

Ostatnio próbowałem nauczyć się czegoś o obsłudze HTTP z poziomu BCB i nauczyłem się:
1. Zalogować.
2. Pobrać interesujące mnie dane widoczne tylko po zalogowaniu.

Ale teraz chciałbym pójść krok dalej i tutaj przedstawiam problem:

Na danej stronie jest system oceniania (10 gwiazdek) napisany za pomocÄ… kodu Ajax:

Kod: Zaznacz cały
<a href="/strona/glos9/praca6" id="LinkNr10" onclick=" event.returnValue = false; return false;">
   <img src="/img/galeria/star_a.gif" id="gwiazdka[1]" />
</a>
<script type="text/javascript">
//<![CDATA[
Event.observe('LinkNr10', 'click', function(event) { document.getElementById('kontener').style.display='none'; new Ajax.Updater('kontener','/strona/glos9/praca6', {asynchronous:true, evalScripts:true, onComplete:function(request, json) {Effect.Appear('kontener')}, requestHeaders:['X-Update', 'kontener']}) }, false);
//]]>
</script>


W jaki sposób dać ocenę za pomocą indy?

Od razu napiszę, że takie coś nie działa:

Kod: Zaznacz cały
  HTTP->Request->Host = "http://strona.pl";
  HTTP->Request->AcceptLanguage = "en-us";
  HTTP->Request->UserAgent = "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT)";
  HTTP->Request->Pragma = "no-cache";
  HTTP->Request->ContentType = "application/x-www-form-urlencoded";
  HTTP->URL->Host = HTTP->Request->Host;
  HTTP->HandleRedirects = true;

  TIdMultiPartFormDataStream *Post = new TIdMultiPartFormDataStream;
  HTTP->Post("http://strona.pl/strona/glos9/praca6", Post);
  //HTTP->Get("http://strona.pl/strona/glos9/praca6", Odpowiedz); <- to też nie dziaÅ‚a
  delete Post;


HTTP to IdHTTP

Macie jakieś pomysły?
Avatar użytkownika
lidamian
Bladawiec
Bladawiec
 
Posty: 29
Dołączył(a): piątek, 19 września 2008, 15:25
PodziÄ™kowaÅ‚ : 4
OtrzymaÅ‚ podziÄ™kowaÅ„: 0
    NieznanyNieznana

Re: Ajax vs Indy

Nowy postprzez Cyfrowy Baron » niedziela, 7 grudnia 2008, 09:28

System oceniania na podanej stronie oparty jest na skrypcie Java, więc ni wydaje mi się możliwe proste wysłanie komendy, gdyż skrypt nie zareaguje. Trzeba by chyba najpierw poznać dokładnie zasadę działania tegoż mechanizmu Java i dopiero potem zastanowić się jak go uruchomić z poziomu własnego programu. Wydaje mi się to jednak niemożliwe, gdyż wymaga to działania w oknie przeglądarki.
Nie przychodzi mi nic do głowy, jak można by zdalnie uruchomić skrypt...
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
PodziÄ™kowaÅ‚ : 12
OtrzymaÅ‚ podziÄ™kowaÅ„: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    NieznanyNieznana

Re: Ajax vs Indy

Nowy postprzez Darek_C++ » poniedziaÅ‚ek, 12 stycznia 2009, 22:26

Ajax nie jest oparty na javie, ale na javascript i polega na wykonywaniu żądań get / post w zależności od zastosowania.

Wiec należało by zobaczyć jakie żądanie jest wykonywane po klkinięcu w daną gwiazdkę i takie samo wykonać z poziomu naszego programu. Jakie są żądania wywoływane można podejrzeć w FF z pluginem Firebug.
Avatar użytkownika
Darek_C++
Elektrowied
Elektrowied
 
Posty: 454
Dołączył(a): piątek, 25 lipca 2008, 14:33
PodziÄ™kowaÅ‚ : 66
OtrzymaÅ‚ podziÄ™kowaÅ„: 4
System operacyjny: Windows XP Pro SP2
Kompilator: Turbo Explorer C++
Gadu Gadu: 0
    NieznanyNieznana

Re: Ajax vs Indy

Nowy postprzez Cyfrowy Baron » Å›roda, 14 stycznia 2009, 10:56

Ajax nie jest oparty na javie, ale na javascript [...]


a co ja napisałem:

System oceniania na podanej stronie oparty jest na skrypcie Java


czy Twoim zdaniem javascipt i skrypt Java to są dwie różne rzeczy?!
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
PodziÄ™kowaÅ‚ : 12
OtrzymaÅ‚ podziÄ™kowaÅ„: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    NieznanyNieznana

Re: Ajax vs Indy

Nowy postprzez Darek_C++ » Å›roda, 14 stycznia 2009, 12:01

Cyfrowy Baron napisał(a):czy Twoim zdaniem javascipt i skrypt Java to są dwie różne rzeczy?!

Oczywiście :)
Javascripy jest językiem interpretowanym przez przeglądarki http://pl.wikipedia.org/wiki/Javascript nie wymagającym kompilacji. Java jest językiem programowania http://pl.wikipedia.org/wiki/Java wymagającym kompilacji i wirtualnej maszyny java do uruchomienia.

"Javy nie należy mylić ze skryptowym językiem JavaScript, z którym wspólną ma jedynie składnię podstawowych instrukcji."

Jak chodzi o ścisłość to nie ma skryptów java tylko skompilowane aplety osadzone w kodzie HTML strony.

Pozdrawiam
Avatar użytkownika
Darek_C++
Elektrowied
Elektrowied
 
Posty: 454
Dołączył(a): piątek, 25 lipca 2008, 14:33
PodziÄ™kowaÅ‚ : 66
OtrzymaÅ‚ podziÄ™kowaÅ„: 4
System operacyjny: Windows XP Pro SP2
Kompilator: Turbo Explorer C++
Gadu Gadu: 0
    NieznanyNieznana

Re: Ajax vs Indy

Nowy postprzez Cyfrowy Baron » Å›roda, 14 stycznia 2009, 12:37

javascript = java script = po polsku: skrypt java.

W słowniku programu FrontPage, czytamy:


skrypt
Typ kodu programu umożliwiającego wysyłanie zestawów instrukcji do programu, na przykład do przeglądarki sieci Web. Skrypt jest uruchamiany bezpośrednio przez program mogący zinterpretować język, w którym napisano skrypt. W sieci World Wide Web skrypty są powszechnie stosowane do dostosowywania stron sieci Web i wyposażania ich w cechy interakcyjne.

JavaScript
Język skryptowy, za pomocą którego można poszerzać funkcjonalność lub poprawiać wygląd strony lub witryny sieci Web. Skrypty w języku JavaScript można uruchamiać na dowolnego typu komputerze klienckim lub serwerowym.




więc byłem nieco nieprecyzyjny, gdyż pisząc o skrypcie java chodziło mi dokładnie o skrypt javascript, co jest o tyle oczywiste, że chodziło wszak o stronę sieci WEB, gdyby chodziło mi o Javę napisałbym aplet java.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
PodziÄ™kowaÅ‚ : 12
OtrzymaÅ‚ podziÄ™kowaÅ„: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    NieznanyNieznana

Re: Ajax vs Indy

Nowy postprzez lidamian » Å›roda, 14 stycznia 2009, 22:27

...polega na wykonywaniu żądań get / post w zależności od zastosowania.
Wiec należało by zobaczyć jakie żądanie jest wykonywane po klkinięcu w daną gwiazdkę i takie samo wykonać z poziomu naszego programu...

Otóż właśnie w tym szkopuł, że akurat w tym przykładzie tak się nie da. Po kliknięciu w link zostaje wykonany taki kod:

Kod: Zaznacz cały
//<![CDATA[
3Event.observe('link44915381', 'click', function(event) { document.getElementById('vote_div').style.display='none'; new Ajax.Updater('vote_div','/vote/1/81', {asynchronous:true, evalScripts:true, onComplete:function(request, json) {Effect.Appear('vote_div')}, requestHeaders:['X-Update', 'vote_div']}) }, false);
4//]]>


Najprawdopodobniej nie można zrobić tego w ten sposób bo jest tam "evalScripts:true" który nie wiem co robi i nie wiem jak zobaczyć jego obsłużenie przez FF. Po kliknięciu w gwiazdkę nic się nie dzieje (nie odbieram żadnej odpowiedzi, a na pewno wysyłam dobry link)

W każdym innym przypadku get/post wystarcza.
Avatar użytkownika
lidamian
Bladawiec
Bladawiec
 
Posty: 29
Dołączył(a): piątek, 19 września 2008, 15:25
PodziÄ™kowaÅ‚ : 4
OtrzymaÅ‚ podziÄ™kowaÅ„: 0
    NieznanyNieznana

Re: Ajax vs Indy

Nowy postprzez Darek_C++ » piÄ…tek, 16 stycznia 2009, 15:01

Jeśli jest to oparte na AJAX to przeglądarka musi wykonać żądanie pos/get jakie będzie to żądanie idzie odczytać w pluginie FF o jakim pisałem.

Podaj adres przedmiotowej strony to sam sprawdzÄ™...

Tak poza tym to adresy '/vote/1/81' są podane w tym kodzie javascript wiec wystarczy je umiejętnie wyciągnąć
Avatar użytkownika
Darek_C++
Elektrowied
Elektrowied
 
Posty: 454
Dołączył(a): piątek, 25 lipca 2008, 14:33
PodziÄ™kowaÅ‚ : 66
OtrzymaÅ‚ podziÄ™kowaÅ„: 4
System operacyjny: Windows XP Pro SP2
Kompilator: Turbo Explorer C++
Gadu Gadu: 0
    NieznanyNieznana


  • Podobne tematy
    Odpowiedzi
    Wyświetlone
    Ostatni post

Powrót do Aplikacje sieciowe

Kto przeglÄ…da forum

Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 1 gość