Http Client

Alle Fragen zur Netzwerkkommunikation
dilbatz
Beiträge: 9
Registriert: Mo 11. Mär 2013, 16:38

Http Client

Beitrag von dilbatz »

Hallo ich(Windows7 64bit) habe früher mit Delphi programmiert und hätte dies auch weiterhin gerne getan, allerdings gibt es ja leider keine kostenlos Version mehr, außerdem finde ich es geschickt dass man bei Lazarus plattformunabhänig programmieren kann(zumindest habe ich das gehört, hoffe es gibt keine großen Einschränkungen).

Ich möchte eine kleine Anwendung schreiben, die mir ein paar daten aus einer Internetseite ausliest und ein paar daten an diese Seite sendet.
Folgende Bedingungen sollten dabei gelten:
möglichst plattformunabhänig(linux, windows)
die entstehende applicationsdatei sollte nicht voll gestopft sein mit externen Bibliotheken, welche ich mitliefern muss
die programmierung des webanteils sollte nicht allzu kompliziert sein.

ich habe nun schon ein paar sachen im Netz gefunden:

Die IPro Komponente welche schon in der FCL integriert ist-> lassen sich meine Anforderungen damit lösen?

Qt-Binding mit qtwebkit für FPC http://users.telenet.be/Jan.Van.hijfte/ ... pcqt4.html habe versucht das binding zu nutzen, aber leider kommt immer die fehlermeldung: QtWidget nicht gefunden, an was liegt das habe leider keine näheren informationen hierzu gefunden

Ein neues Webkitbinding scheint es auch zu geben: http://sourceforge.net/projects/lazwebkit/
ist das stabil? Muss auf der Maschine wenn ich das nutze dann gtk installiert sein( unter windows ja nicht sehr verbreitet)

und von gecko habe ich auch was gehört.

Könnt ihr mir sagen, was für mich am einfachsten ist und wie ich vorgehe um das implementieren zu können(tutorials oder ähnliches)

Vielen Dank im Voraus.
Ich baue auf dieses Forum( habe das gefühl dass die ressourcen für lazarus leider nicht ganz so groß sind wie für delphi)

gruß Dulbitz

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6208
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Http Client

Beitrag von af0815 »

Schau mal unter Webserver abfragen hier im Forum rein, ich nehme an das geht in die gewünschte Richtung.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

dilbatz
Beiträge: 9
Registriert: Mo 11. Mär 2013, 16:38

Re: Http Client

Beitrag von dilbatz »

Hi dort geht es anscheinend hauptsächlich um html zu parsen, ich möchte aber auch etwas an den server senden über http.
Ich möchte auch keine html komponente eines Freizeitentwicklers nutzen die möglicherweise viele bugs beinhaltet sondern eine stabile bibliothek wie webkit gecko ... .
Aber nochmals zurück auf meine fragen, lässt sich dies nicht mit dem IPro realisieren, leider finde ich keine beispiele im netz hierfür.

gruß Dilbatz

Michl
Beiträge: 2505
Registriert: Di 19. Jun 2012, 12:54

Re: Http Client

Beitrag von Michl »

Ich weiss nicht, ob das Dir hilft?! Ich nutze jedoch für ähnliche Aufgaben Ararat Synapse.

http://synapse.ararat.cz/doku.php

Ist allerdings mit programmieraufwand verbunden, bei mir laufen die Anwendungen damit allerdings stabil!

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 

Benutzeravatar
theo
Beiträge: 10497
Registriert: Mo 11. Sep 2006, 19:01

Re: Http Client

Beitrag von theo »

Für dein Vorhaben benötigst du mMn keine Browser sondern eine HTTP Komponente wie THTTPSend
http://synapse.ararat.cz/doc/help/httpsend.html
http://synapse.ararat.cz

Edit: Michl war schneller.

dilbatz
Beiträge: 9
Registriert: Mo 11. Mär 2013, 16:38

Re: Http Client

Beitrag von dilbatz »

Hi ok ich versuche es mal mit synapsis, folgendes ich möchte mich einloggen auf einer seite und dann in einem textfeld einen text eingeben und mich anschließend wieder ausloggen, dazu muss ich auf einzelne webelemente der seite zugreifen eines sieht z.b. so aus:

<input type="text" onblur="checkFormValue(this,'Benutzername');" onfocus="switchFormValue(this,'Benutzername');" onclick="switchFormValue(this,'Benutzername');" value="" maxlength="50" name="user_name" tabindex="1"></input>

und dort meinen login eingeben dann den login button drücken, welcher einen anderen tag hat weiß jemand wie das mit synapsis geht auf deren seite habe ich kein enstrpechendes tutorial gefunden.

gruß dilbatz

Benutzeravatar
theo
Beiträge: 10497
Registriert: Mo 11. Sep 2006, 19:01

Re: Http Client

Beitrag von theo »

Du musst herausfinden, wohin welche Daten gepostet werden.
Das HTTP Protokoll kennt keine Buttons und kein Javascript.
Im HTML der Seite findet man URL und Methode z.B. unter

Code: Alles auswählen

<form action="/cgi-bin/auswertung.pl" method="post">


Es kann sein, dass die Adresse auch nur im Script gesetzt wird, das kann man dann mit Firebug oder sowas herausfinden.

dilbatz
Beiträge: 9
Registriert: Mo 11. Mär 2013, 16:38

Re: Http Client

Beitrag von dilbatz »

danke für eure Hilfe.
Ich suche sowas wie das hier:
http://www.delphipraxis.net/105569-ebay ... icken.html
kenn das jemand?

gruß dilbatz.

Benutzeravatar
theo
Beiträge: 10497
Registriert: Mo 11. Sep 2006, 19:01

Re: Http Client

Beitrag von theo »

Würde ich nicht so machen, wenn es irgendwie geht. Aber du kannst schon IE als ActiveX importieren. http://wiki.freepascal.org/LazActiveX
Ist aber nicht Cross-Platform und kaum einfacher.

dilbatz
Beiträge: 9
Registriert: Mo 11. Mär 2013, 16:38

Re: Http Client

Beitrag von dilbatz »

Ok ich werde es so versuchen, wie du meinst theo, auch wenn ich nicht weiß, ob die seite alle informationen bereitstellt, damit ich den code ausführen kann.
Eine Frage noch, kennt ihr tutorials oder bespiele, wo synapsis ein bisschen besser beschrieben ist, die dokumentation und die beispiele der seite sind nicht sonderlich gut.

danke dilbatz.

Benutzeravatar
theo
Beiträge: 10497
Registriert: Mo 11. Sep 2006, 19:01

Re: Http Client

Beitrag von theo »

dilbatz hat geschrieben: die dokumentation und die beispiele der seite sind nicht sonderlich gut.


:?:
Ich kenne kein Projekt, welches besser dokumentiert ist.
http://synapse.ararat.cz/doc/help/https ... PSend.html

Für den Start, schau dir den Quelltext der Convenience Funktionen wie HttpPostBinary an.
Vllt. solltest du dich aber auch erst ein bisschen über Webprogrammierung informieren.
http://de.wikipedia.org/wiki/Hypertext_ ... r_Protocol

dilbatz
Beiträge: 9
Registriert: Mo 11. Mär 2013, 16:38

Re: Http Client

Beitrag von dilbatz »

naja ich schon einige ;) ... besonders kommentierte beispiele wie bei qt sind für mich aussagekräftiger.
Ich werde das mal durcharbeiten danke.

BeniBela
Beiträge: 309
Registriert: Sa 21. Mär 2009, 17:31
OS, Lazarus, FPC: Linux (Lazarus SVN, FPC 2.4)
CPU-Target: 64 Bit

Re: Http Client

Beitrag von BeniBela »

Meine Internet Tools können das viel besser.

Zum Beispiel

Code: Alles auswählen

 
httpRequest(process('http://www.die.seite.de', 'form((//form)[1], "user_name=...&pass_word=...")'))
 


ruft sozusagen 'http://www.die.seite.de' auf, schreibt name/passwort in das Formular, schickt es ab und liefert die neue Seite als string zurück

Zumindest solange kein JavaScript vorkommt

Socke
Lazarusforum e. V.
Beiträge: 3158
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: Http Client

Beitrag von Socke »

BeniBela hat geschrieben:

Code: Alles auswählen

 
httpRequest(process('http://www.die.seite.de', 'form((//form)[1], "user_name=...&pass_word=...")'))
 

Warum verwendet hier keiner weit verbreitete Standards wie XML und XPath?
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

BeniBela
Beiträge: 309
Registriert: Sa 21. Mär 2009, 17:31
OS, Lazarus, FPC: Linux (Lazarus SVN, FPC 2.4)
CPU-Target: 64 Bit

Re: Http Client

Beitrag von BeniBela »

Socke hat geschrieben:
BeniBela hat geschrieben:

Code: Alles auswählen

 
httpRequest(process('http://www.die.seite.de', 'form((//form)[1], "user_name=...&pass_word=...")'))
 

Warum verwendet hier keiner weit verbreitete Standards wie XML und XPath?


Nun es ist doch XPath.

Und XML hilft nicht viel mit HTML

Antworten