Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - HTTP-Funktionalität für Win+Mac (XE2)
sashs - So 08.04.12 16:02
Titel: HTTP-Funktionalität für Win+Mac (XE2)
Hallo,
ich suche HTTP-Funktionalität mit Delphi XE2.
Ich habe im Internet gesucht und habe Indy gefunden. Allerdings ist das nur für Windows. Gibt es da etwas was ich für Windows und Mac verwenden kann?
Gruß
Sascha
Moderiert von
Narses: Titel erweitert.
sashs - Mo 09.04.12 18:13
Hallo,
ich habe jetzt das hier gefunden und das scheint zu funktionieren.
http://docwiki.embarcadero.com/CodeExamples/en/HTTP_Get_(Delphi)
Das funktioniert auch.
Da das ganze nicht so toll dokumentiert ist, habe ich bei Google suchen müssen wie es mit Cookies funktioniert. Dazu soll es einen CookieManager vom Typ TIdCookieManager geben, der sich in der gleichen Unit befindet. Es gibt auch ein dementsprechendes property bei TIdHttp. Allerdings scheint es diese Klasse bei mir nicht zu geben und ich weiß nicht warum.
Weiß jemand genaueres warum diese Klasse beim Delphi XE2 fehlt aber dennoch im TIdHTTP genutzt wird?
Desweiteren weiß ich nicht wie das hier mit Post funktionieren soll.
Wozu dient die Source die ich dort angeben soll?
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| function Post(AURL: string; const ASourceFile: String {$IFDEF STRING_IS_ANSI}; ADestEncoding: TIdTextEncoding = nil{$ENDIF} ): string; overload; function Post(AURL: string; ASource: TStrings; AByteEncoding: TIdTextEncoding = nil {$IFDEF STRING_IS_ANSI}; ASrcEncoding: TIdTextEncoding = nil; ADestEncoding: TIdTextEncoding = nil{$ENDIF}): string; overload; function Post(AURL: string; ASource: TStream {$IFDEF STRING_IS_ANSI}; ADestEncoding: TIdTextEncoding = nil{$ENDIF} ): string; overload; function Post(AURL: string; ASource: TIdMultiPartFormDataStream {$IFDEF STRING_IS_ANSI}; ADestEncoding: TIdTextEncoding = nil{$ENDIF} ): string; overload; procedure Post(AURL: string; const ASourceFile: String; AResponseContent: TStream); overload; procedure Post(AURL: string; ASource: TStrings; AResponseContent: TStream; AByteEncoding: TIdTextEncoding = nil {$IFDEF STRING_IS_ANSI}; ASrcEncoding: TIdTextEncoding = nil{$ENDIF}); overload; procedure Post(AURL: string; ASource, AResponseContent: TStream); overload; procedure Post(AURL: string; ASource: TIdMultiPartFormDataStream; AResponseContent: TStream); overload; |
Gruß
Sascha
Moderiert von
Narses: Quote- durch Delphi-Tags ersetzt
jaenicke - Mo 09.04.12 20:32
sashs hat folgendes geschrieben : |
| Da das ganze nicht so toll dokumentiert ist, habe ich bei Google suchen müssen wie es mit Cookies funktioniert. Dazu soll es einen CookieManager vom Typ TIdCookieManager geben, der sich in der gleichen Unit befindet. Es gibt auch ein dementsprechendes property bei TIdHttp. Allerdings scheint es diese Klasse bei mir nicht zu geben und ich weiß nicht warum. |
Bei mir befindet sich die Komponente bei XE2 unter Indy Misc in der Komponentenpalette. :nixweiss: (Ich erstelle diese aber in der Regel manuell.)
sashs hat folgendes geschrieben : |
Desweiteren weiß ich nicht wie das hier mit Post funktionieren soll.
Wozu dient die Source die ich dort angeben soll? |
Naja, für die Post-Parameter. Irgendwo musst du die ja angeben. ;-)
sashs - Mo 09.04.12 22:02
jaenicke hat folgendes geschrieben : |
sashs hat folgendes geschrieben : | | Da das ganze nicht so toll dokumentiert ist, habe ich bei Google suchen müssen wie es mit Cookies funktioniert. Dazu soll es einen CookieManager vom Typ TIdCookieManager geben, der sich in der gleichen Unit befindet. Es gibt auch ein dementsprechendes property bei TIdHttp. Allerdings scheint es diese Klasse bei mir nicht zu geben und ich weiß nicht warum. | Bei mir befindet sich die Komponente bei XE2 unter Indy Misc in der Komponentenpalette. :nixweiss: (Ich erstelle diese aber in der Regel manuell.)
|
Ok, hab ich gefunden. Ich weiß nicht wo ich es gesehen habe, aber wenn ich mich nicht irre, sollte es in der Unit IdHttp sein, es gibt aber eine Unit IdCookieManager.
In der Bibliotheken-Referenz vom Rad-Studio wird diese auch nicht aufgelistet.
Gibt es irgendwo eine Dokumentation, in der ich nachlesen kann, was alles von Haus aus mitgeliefert wird, ähnlich beispielsweise der Java-API oder der von Flex/ActionScript?
Es wäre auch ideal, wenn dort alle Units, Klassen und Methoden dokumentiert wären, dass ich weiß, was diese machen.
Ich kenne bisher nur das
http://docwiki.embarcadero.com/Libraries/en/Unit_List
und die Bibliotheken-Referenz und bei beiden sind die Sachen die ich suche meist nicht mit drin.
Was heißt du erstellst diese in der Regel manuell? Aus den Sourcen von der indy-Seite?
jaenicke hat folgendes geschrieben : |
sashs hat folgendes geschrieben : | Desweiteren weiß ich nicht wie das hier mit Post funktionieren soll.
Wozu dient die Source die ich dort angeben soll? | Naja, für die Post-Parameter. Irgendwo musst du die ja angeben. ;-) |
Das ist schon klar. ;-)
Also wäre die Angabe für das SourceFile eine Datei die ich hochladen möchte?
Gruß
Sascha
jaenicke - Di 10.04.12 07:39
sashs hat folgendes geschrieben : |
| Was heißt du erstellst diese in der Regel manuell? Aus den Sourcen von der indy-Seite? |
Nein, ich meine:
Delphi-Quelltext
1:
| MyIdHttp.CookieManager := TIdCookieManager.Create; |
Vielleicht noch mit Parametern, das weiß ich aus dem Kopf nicht. Aber letztlich kommt es auf das selbe heraus, wenn du es auf das Formular legst. Indy benutze ich aber lieber ohne Komponenten auf dem Formular, so dass ich es leichter aktualisieren kann.
sashs hat folgendes geschrieben : |
| Also wäre die Angabe für das SourceFile eine Datei die ich hochladen möchte? |
Wenn dort die Parameter fertig kodiert drin stehen, ja, aber für denn Zweck bietet sich eher TIdMultiPartFormDataStream an.
SvenAbeln - Di 10.04.12 12:10
sashs hat folgendes geschrieben : |
In der Bibliotheken-Referenz vom Rad-Studio wird diese auch nicht aufgelistet.
Gibt es irgendwo eine Dokumentation, in der ich nachlesen kann, was alles von Haus aus mitgeliefert wird, ähnlich beispielsweise der Java-API oder der von Flex/ActionScript?
Es wäre auch ideal, wenn dort alle Units, Klassen und Methoden dokumentiert wären, dass ich weiß, was diese machen.
Ich kenne bisher nur das
http://docwiki.embarcadero.com/Libraries/en/Unit_List
und die Bibliotheken-Referenz und bei beiden sind die Sachen die ich suche meist nicht mit drin.
|
Die Delphi Hilfe hat auch einen "Index" und eine "Suche" dort sind die entsprechenden Klassen und Units sehr schnell zu finden.
Indy wird zwar zusammen mit Delphi installiert, ist aber ein unabhängiges Open-Source Projekt und gehört nicht zur "offiziellen" VCL/RTL von Embarcadero. Die gesamte Dokumentation der Indy Units und Klassen ist aber auch in der Delphi Hilfe eingebunden (unter Inhalt / Internet Direct (Indy) 10) und kann auch über die Suche und den Index erreicht werden.
Ansonsten gibt es die gesamte Dokumentation beim Indy Projekt in verschiedenen Formaten zum
Download [
http://www.indyproject.org/Sockets/Docs/] oder zum
Online lesen. [
http://www.indyproject.org/docsite/html/]
sashs - Di 10.04.12 18:52
Moderiert von
Narses: Komplett-Zitat des letzten Beitrags entfernt.
Den Index hatte ich gestern schon gesehen. Dort hatte ich IdCookieManager eingegeben, aber aus irgendeinem Grund wurde dieser nicht angezeigt. Gestern habe ich noch gefunden, welche Unit ich bei den uses einfügen muss.
Jetzt habe ich nochmal im Index danach gesucht und auf einmal werden mir dazu Hilfethemen aufgelistet. Also irgendwas muss ich gestern doch falsch gemacht haben. :gruebel:
Das gleiche auch bei TIdMultiPartFormData.
Naja, jetzt hab ich alles und es funktioniert.
Danke euch.
Gruß
Sascha
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!