Ich hab mit der Funktion SendPostData (im dsdt.info) versucht eine Seite zu öffnen.
Da wenn mein Modem spinnt und das Programm an ist soll keine Fehlermeldung erscheinen.
Um das Spinnen selber zu machen, habe ich der Firewall gesagt die soll das Programm blocken ^^
Dann hab ich mir gedacht ich mach eine If-Abfrage.
Blos das ist ein Int64 wert (lStream.Size).
Beim Debuggen hatte ich festgestellt, wenn das zugreifen auf der Seite fehlschlägt, bekommt lStream.Size diesen wert:
lStream.Size: Access violation at 009F1FA4 accessing 00000000
Wie schaffe ich es das ich darauf überprüfe, das dann keine Fehlermeldung auftritt, wenn ich auf diesen Wert zugreifen will? Ich hab schon if lStream.Size<1 versucht, da kommt, aber auch ein Error...
Das ist die FUnktion die ich verwende:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39:
| function SendPostData(Ahttp: TIdHTTP; const AtoURL: String; const aParams: TStrings): String; Var lStream: TMemoryStream; lParams: TStringStream; I: Integer; begin Result:=''; if not Assigned(aHttp) then exit; lStream := TMemoryStream.create; lParams := TStringStream.create(''); try AHTTP.Request.ContentType := 'application/x-www-form-urlencoded';
for I:=0 to aParams.Count-1 do lParams.WriteString(aParams[I] + '&');
try AHTTP.Post(AtoURL, lParams, lStream); except on E: Exception do showmessage('Fehler bei der Übertragung: ' + E.Message); end; SetLength(Result,lStream.Size); lStream.Position:=0; lStream.ReadBuffer(Result[1],lStream.Size); finally lParams.Free; lStream.Free; end; end; |
Aus: [url=
dsdt.info/tipps/?id=455]
Per POST Daten an Scripts senden[/url]
MfG
hui1991