| Autor |
Beitrag |
huhn
      
Beiträge: 272
Erhaltene Danke: 1
WIN XP
D7Pers
|
Verfasst: Fr 14.10.05 15:02
Hi leute!
ich benutze die indy-compo und möchte den download ohne disconnect abbrechen.
Dh ich hab eine schleife in der mehrmals http.get ausgeführt wird ich aber nur 1-9 bytes brauche. Jedoch unterstützt der server nicht die funktion http.request.contentlength etc weswegen ich das nicht benützen kann.
habt ihr noch eine idee wie ich des noch abbrechen kann? ich benütze zudem noch einen cookiemanager.
ich hoffe ihr könnt mir helfen
mfg huhn
_________________ Quod Erat Demonstrandum-Was zu beweisen war! *THX to Chrissivo!*
|
|
huhn 
      
Beiträge: 272
Erhaltene Danke: 1
WIN XP
D7Pers
|
Verfasst: Fr 14.10.05 15:30
Ich habe eine methode gefunden, die mir gar nicht gefällt!
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9:
| for id:=0 to 20 do begin try http.ReadTimeout:=100; HTTP.get('blubb'+id); http.ReadTimeout:=0; except end; end; |
gibts vielleicht no was anderes?
_________________ Quod Erat Demonstrandum-Was zu beweisen war! *THX to Chrissivo!*
|
|
huhn 
      
Beiträge: 272
Erhaltene Danke: 1
WIN XP
D7Pers
|
Verfasst: Sa 15.10.05 15:18
Ich hab noch weiter rumprobiert und rumgesurft aber nichts mehr weiteres gefunde.
ich habe es auch mal probiert in dem onWork ereignis den readtimeout:=2 zu setzen und damit nach den ersten empfangenen daten abzubrechen, dies hat aber nicht funktioniert, bzw war genauso langsam wie vorher. Bei ftp gibt es einen aufruf namens cancel, könnte man sowas nicht auch für http machen oder weiß einer wie er aufgebaut ist?
Gibt es vielleciht eine Möglichkeit nur was zu senden ohne etwas zu empfangen?
mfg huhn
_________________ Quod Erat Demonstrandum-Was zu beweisen war! *THX to Chrissivo!*
|
|
retnyg
      
Beiträge: 2754
SNES, GB, GBA, CPC, A500, 486/66, P4/3.0HT: NintendOS, AmigaOS, DoS
Delphi 5, Delphi 7
|
Verfasst: Sa 15.10.05 15:36
glaube nicht dass du mit der unflexiblen indy geschichte da erfolg haben wirst.
beim api-befehl RECV kannst du angeben, wieviel bytes von deinem Socket gelesen werden.
allerdings musst du dich selbst um verbindungsaufbau, http protokoll etc. kümmern.
_________________ es gibt leute, die sind genetisch nicht zum programmieren geschaffen.
in der regel haben diese leute die regel...
|
|
huhn 
      
Beiträge: 272
Erhaltene Danke: 1
WIN XP
D7Pers
|
Verfasst: Sa 15.10.05 17:06
das mit dem recv buffer hab ich au schon probiert und dann beim ersten onwork readtimeout,
dies war aber nicht ganz so erfolgreich.
wie meinst "allerdings musst du dich selbst um verbindungsaufbau, http protokoll etc. kümmern." das?
mfg huhn
_________________ Quod Erat Demonstrandum-Was zu beweisen war! *THX to Chrissivo!*
|
|
retnyg
      
Beiträge: 2754
SNES, GB, GBA, CPC, A500, 486/66, P4/3.0HT: NintendOS, AmigaOS, DoS
Delphi 5, Delphi 7
|
Verfasst: Sa 15.10.05 17:25
ich meine damit dass du nicht einfach nur GET schreibst und alles von alleine passiert,
sondern dass du ne verbindung zu port 80 aufbaust, dann den HTTP request selber zusammenbaust und hinschickst, usw...
democode: MP3PROXY
_________________ es gibt leute, die sind genetisch nicht zum programmieren geschaffen.
in der regel haben diese leute die regel...
|
|
huhn 
      
Beiträge: 272
Erhaltene Danke: 1
WIN XP
D7Pers
|
Verfasst: Sa 15.10.05 17:30
achso jetzt also ne TCP-Verbindung aufbauen html-header schicke.....
des hab ich mir auch überlegt, aber es wäre ein ziemlich großer aufwand den kompletten quelltext bei mir zu überarbeiten.
gibt es vielleicht noch andere gut kompos auser indy bzg http?
mfg huhn
_________________ Quod Erat Demonstrandum-Was zu beweisen war! *THX to Chrissivo!*
|
|
retnyg
      
Beiträge: 2754
SNES, GB, GBA, CPC, A500, 486/66, P4/3.0HT: NintendOS, AmigaOS, DoS
Delphi 5, Delphi 7
|
Verfasst: Sa 15.10.05 17:37
ich persönlich finde meine retHTTPGet unit ziemlich gut
(weil die auf den ganzen VCL schnickschnack scheisst, unit einbinden und gut)
siehe romhustler auf meiner hp
_________________ es gibt leute, die sind genetisch nicht zum programmieren geschaffen.
in der regel haben diese leute die regel...
|
|
huhn 
      
Beiträge: 272
Erhaltene Danke: 1
WIN XP
D7Pers
|
Verfasst: Sa 15.10.05 17:54
sieht gut aus
aber so wie ich das sehe ist nicht irgendwie ne funktion für cookies drinne oder
BinaryData: Boolean; wofür is des nomal?
PostQuery: String; ist das hier für die Post-variablen?
_________________ Quod Erat Demonstrandum-Was zu beweisen war! *THX to Chrissivo!*
|
|
retnyg
      
Beiträge: 2754
SNES, GB, GBA, CPC, A500, 486/66, P4/3.0HT: NintendOS, AmigaOS, DoS
Delphi 5, Delphi 7
|
Verfasst: Sa 15.10.05 17:57
huhn hat folgendes geschrieben: | aber so wie ich das sehe ist nicht irgendwie ne funktion für cookies drinne oder  |
ne, hab ich bislang nicht gebraucht =)
huhn hat folgendes geschrieben: | | BinaryData: Boolean; wofür is des nomal? |
wenn du httpgetfile machst solltest du das auf true setzen, wenn du nur html willst (httpgetstring) setzte das auf false, die antwort ist dann in stringresult, ansonsten in dem filename den du angibst
huhn hat folgendes geschrieben: | | PostQuery: String; ist das hier für die Post-variablen? |
jo, allerdings nicht für file uploads
_________________ es gibt leute, die sind genetisch nicht zum programmieren geschaffen.
in der regel haben diese leute die regel...
|
|
huhn 
      
Beiträge: 272
Erhaltene Danke: 1
WIN XP
D7Pers
|
Verfasst: Sa 15.10.05 18:10
tja is wirklich gut aber ohne cookies und en paar andere sachen schlecht zum integrieren, werds aber mal in meine sammlung tun, dann hab ich was beim nächsten mal^^
Ich werde wennschon jetzt die head methode von indy verwenden oder mir nochmal genauer den code von TCP/http von indy angucken und vielleicht was ergänzen^^
_________________ Quod Erat Demonstrandum-Was zu beweisen war! *THX to Chrissivo!*
|
|