AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Mit IdHTTP wird die Seite unvollständig geladen
Thema durchsuchen
Ansicht
Themen-Optionen

Mit IdHTTP wird die Seite unvollständig geladen

Ein Thema von bogdan · begonnen am 26. Apr 2018 · letzter Beitrag vom 26. Apr 2018
Antwort Antwort
Seite 2 von 3     12 3      
bogdan

Registriert seit: 15. Apr 2013
77 Beiträge
 
#11

AW: Mit IdHTTP wird die Seite unvollständig geladen

  Alt 26. Apr 2018, 14:12
Die IdHTTP Instanz wir auch for dem Abruf der Seite auch immer neu erstellt.
  Mit Zitat antworten Zitat
bogdan

Registriert seit: 15. Apr 2013
77 Beiträge
 
#12

AW: Mit IdHTTP wird die Seite unvollständig geladen

  Alt 26. Apr 2018, 14:22
Ist es die aktuellste Indy Version (10.6.2)?
Indy Version: 10.6.2.5263
  Mit Zitat antworten Zitat
HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
961 Beiträge
 
Delphi 6 Professional
 
#13

AW: Mit IdHTTP wird die Seite unvollständig geladen

  Alt 26. Apr 2018, 14:36
Hmm..

OK, scheint ein Problem des Anzeige-Memos!

Habe die Länge des Textes vom Result-String (direkt vom Get) und vom Memo.Lines.Text verglichen.

Der Result-String ist 483164 Zeichen lang, der Text vom Memo 420676 Zeichen...
Eventuell wird da etwas geliefert, was das Memo als EOL (End of Line, in diesem Fall End of String) interpretiert.
  Mit Zitat antworten Zitat
HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
961 Beiträge
 
Delphi 6 Professional
 
#14

AW: Mit IdHTTP wird die Seite unvollständig geladen

  Alt 26. Apr 2018, 14:40
Hmm..

Meine Vermutung ist richtig, an Position 420677 befindet sich ein #0 im Result-String!
Und da endet die Übernahme in die StringList..
  Mit Zitat antworten Zitat
bogdan

Registriert seit: 15. Apr 2013
77 Beiträge
 
#15

AW: Mit IdHTTP wird die Seite unvollständig geladen

  Alt 26. Apr 2018, 14:42
Hallo Holger,

schon mal danke für deine Mühen.

Unf wie kriege ich jetzt den kompletten Inhalt aus der INDY Komponente in ein String übergeben?
  Mit Zitat antworten Zitat
HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
961 Beiträge
 
Delphi 6 Professional
 
#16

AW: Mit IdHTTP wird die Seite unvollständig geladen

  Alt 26. Apr 2018, 14:46
Hmm..

Um dein Beispiel zu nehmen:

Delphi-Quellcode:
function GetHTMLCode(xUrl: String): String;
begin
  Result := '';
  try
    Result := IdHTTP1.Get(xUrl);
  except
    on E: EIdHTTPProtocolException do
    begin
      Result := 'E.Message: ' + E.Message + #13#10;
      Result := Result +'E.ErrorMessage:' +#13#10;
      Result := Result + E.ErrorMessage;
    end;
  end;
end;

( Nur so hier im Browser geändert...)
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.419 Beiträge
 
Delphi 7 Professional
 
#17

AW: Mit IdHTTP wird die Seite unvollständig geladen

  Alt 26. Apr 2018, 14:49
Alternativer Lösungsvorschlag:

Lade die Seite mal in 'nen MemoryStream und entferne ggfls. daraus die Hex 00, bevor Du das Ergebnis der Funktion als String zurückgibst.

TIDHttp hat 'ne überladene Funktion, mit der man die Daten in 'nen Stream bekommt.

Den Stream dann von Hex 00 bereinigen und dann per Stringliste.LoadFromStream(DeinStream) weiterverarbeiten.
  Mit Zitat antworten Zitat
bogdan

Registriert seit: 15. Apr 2013
77 Beiträge
 
#18

AW: Mit IdHTTP wird die Seite unvollständig geladen

  Alt 26. Apr 2018, 14:50
Hallo Holger,

ich kriege beim IdHTTP.GET Aufruf keine Exception, d.h. der HTML Code muss an der folgenden Position:
Code:
Result := IdHTTP1.Get(xUrl);
schon richtig ausgegeben werden.
  Mit Zitat antworten Zitat
bogdan

Registriert seit: 15. Apr 2013
77 Beiträge
 
#19

AW: Mit IdHTTP wird die Seite unvollständig geladen

  Alt 26. Apr 2018, 15:11
Habe die Funktion erst mal so umgeschrieben, bekomme aber so nur einen leeren String:

Code:
function GetHTMLCode(xUrl: String): String;
var
  xResult : TStringList;
  xResMemo : TMemoStream;
begin
  xResult := TStringList.Create;
  xResMemo : TMemoStream.Create;
  try
    try
      IdHTTP1.Get(xUrl, xResMemo);
      xResult.LoadFromStream(xResMemo);
    except
      on E: EIdHTTPProtocolException do
      begin
        xResult.Add('E.Message: ' + E.Message);
        xResult.Add('E.ErrorMessage:');
        xResult.Add(E.ErrorMessage);
      end;
    end;
  finally
    Result := xResult.Text;
    xResult.Free;
    xResMemo.Free;
  end;
end;

Geändert von bogdan (26. Apr 2018 um 15:13 Uhr) Grund: code falsch
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.419 Beiträge
 
Delphi 7 Professional
 
#20

AW: Mit IdHTTP wird die Seite unvollständig geladen

  Alt 26. Apr 2018, 15:18
Bitte eine Zeile einfügen:
Delphi-Quellcode:
      IdHTTP1.Get(xUrl, xResMemo);
      xResMemo.Position := 0; // <- das muss dazwischen!
      xResult.LoadFromStream(xResMemo);
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:59 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz