HttpClose
obj -> HttpClose(int1[, handle2]) : int
HTTP-Objekt schließen
Details
- obj: Deskriptor des HTTP -Objekts
- int1:
- handle2: Deskriptor auf HTTP-Body
- Resultat:
intFehlerwert - Siehe: Verwandte Befehle , Http ,
HttpOpen (), Beispiel
Dieser Befehl schließt das Objekt (obj) und leert die Header- und Parameter-Liste. Alle Objekte, die in den Listen enthalten sind, werden gelöscht.
Bei den Typen _HttpRecvRequest und _HttpRecvResponse werden eventuell noch ausstehende Daten des HTTP-Body eingelesen und verworfen. Dazu muss der Header über einen Content-Length-Eintrag verfügen.
Bei den Typen _HttpSendRequest und _HttpSendResponse wird die Anfrage bzw. die Antwort über den bei HttpOpen () angegebenen Socket versendet. Als HTTP-Body kann der Inhalt einer externen Datei, der Inhalt eines Memory -Objekts oder die Parameter-Liste gesendet werden. Der Deskriptor der externen Datei oder des Memory -Objekts wird in (handle2) übergeben. In (int1) können eine oder mehrere der folgenden Optionen angegeben werden:
_HttpDiscardDie Daten werden nicht versendet._HttpCloseConnectionIm HTTP-Header wird der EintragConnection: closevorgenommen, der bei HTTP/1.1 dem Empfänger signalisiert, dass die Verbindung nach dem Erhalt der HTTP-Response geschlossen werden soll._HttpParamsToURIDer Inhalt der Parameter-Liste wird in die URI eingefügt. Diese Option ist nur beim Typ_HttpSendRequestmöglich._HttpParamsToDataDer Inhalt der Parameter-Liste wird als HTTP-Body aufbereitet. In (handle2) darf kein Deskriptor angegeben werden._HttpSkipChunkedAuf dem Socket vorhandene und noch nicht gelesene Chunked-Daten werden überlesen. Die Option wird nur bei_HttpRecvRequestund_HttpRecvResponseausgewertet._HttpUseWebProxy/_HttpUseWebProxyTLSFalls das Senden über einen HTTP-Proxy (_HttpUseWebProxy) bzw. HTTPS-Proxy (_HttpUseWebProxyTLS) erfolgt, muss eine dieser Option verwendet werden. Dadurch wird ein modifizierter HTTP-Header verwendet. Die EigenschaftProxyAuthorizationist ebenfalls nur bei diesen Optionen wirksam.
Der Rückgabewert ist der _ErrOk, wenn der Versand erfolgreich war. Zu den möglichen Fehlerwerten gehören Socket-Fehler und _ErrFsiReadFault, wenn die Datei in (handle2) nicht vollständig gelesen werden kann.
Bei _HttpSendRequest werden die folgenden Header-Einträge automatisch gesetzt, wenn sie nicht bereits per Prozedur definiert wurden:
Host:(fallsHostNamedefiniert ist)Date:User-Agent:
Bei _HttpSendResponse werden die folgenden Header-Einträge automatisch gesetzt, wenn sie nicht bereits per Prozedur definiert wurden:
Date:Server:
Der Header-Eintrag Content-Length: wird automatisch gesetzt, wenn ein HTTP-Body vorhanden ist. Der angegebene Deskriptor muss, sofern er nicht weiter benötigt wird, entfernt werden (siehe MemFree () bzw. FsiClose ()).
Mögliche Laufzeitfehler:
_ErrHdlInvalid: Der in (obj) oder in (handle2) übergebene Deskriptor ist ungültig._ErrStringOverflow: Bei der Option_HttpParamsToURIwird die URI länger als8192Bytes oder die vom Server gelieferte Challenge ist länger als4096Byte (bei Verwendung von_HttpProxyAuthTypeNTLM.