Thema: Delphi ISAPI und POST

Einzelnen Beitrag anzeigen

Assarbad
(Gast)

n/a Beiträge
 
#6

Re: ISAPI und POST

  Alt 27. Dez 2004, 10:20
Das sollten lesbare Bytes sein. Ich würde es an deiner Stelle also etwa so machen (Achtung, die Namen der ECB-Member mußt du evtl. anpassen):

Delphi-Quellcode:
var x:String; dwSize:DWORD;

// Größe aus ECB ermitteln
dwSize = ECB.cbAvailable;
// Größe des Stringpuffers festlegen (+1 wegen Nullterminierung)
SetLength(x, dwSize+1);
// Puffer mit NUllen füllen
ZeroMemory(@x[1], dwSize+1);
// Daten lesen
ECB.ReadClient(ConnID, Pointer(@x[1]), dwSize);
// Größe an echte Stringlänge anpassen - HTTP sendet normal nur printable ASCII, kein EASCII
SetLength(x, lstrlen(@x[1]));
Wenn natürlich der Content-Type etwas anderes aussagt, mußt du unter Umständen die Daten konvertieren, zB von UTF8 nach WideString oder sowas.

Statt ECB.ReadClient() könnte theoretisch auch ein
Code:
CopyMemory(@s[1], ECB.lpbData, dwSize);
gehen! Wie gesagt, ich kann es selber nicht testen und das letztemal hatte ich mit ISAPI vor 3 oder 4 Jahren zu tun.
  Mit Zitat antworten Zitat