Mit der Funktion kcHttpPutStatus
kann ein Status-Code für die HTTP Response übergeben werden. Zusätzlich kann eine Reason-Phrase angegeben werden.
Die Länge der Reason-Phrase ist auf 256 Bytes beschränkt. Wird als zweiter Parameter NULL übergeben, so setzt openUTM die Standard-Reason-Phrase für den gesetzten Status-Code ein.
Folgende Status-Codes dürfen nicht gesetzt werden:
- 100 Continue
- 101 Switching Protocols
- 203 Non-Authoritative Information
- 301 Moved Permanently
- 302 Found
- 307 Temporary Redirect
- 401 Unauthorized
- 407 Proxy Authentication Required
- 408 Request Timeout
- 411 Length Required
- 413 Request Entity Too Large
- 417 Expectation Failed
- 502 Bad Gateway
- 504 Gateway Timeout
- 505 HTTP Version Not Supported
Die Funktion kann im Teilprogramm und im HTTP-Exit-Programm aufgerufen werden. Im HTTP-Exit-Programm darf die Funktion nur beim Bearbeiten der Ausgabenachricht aufgerufen werden. Wenn die Funktion im Teilprogrammlauf aufgerufen wird, so muss im selben Teilprogrammlauf mit MPUT eine Ausgabenachricht an den HTTP-Client bereitgestellt und der Vorgang beendet werden, ansonsten geht die übergebene Header-Information verloren.
kc_http_retcode kcHttpPutStatus( int statusCode, char * reasonPhrase );
Diese Funktion hat folgende Funktionsparameter:
>> | statusCode | Status-Code für die HTTP Response. |
>> | reasonPhrase | Adresse des Puffers mit der Reason-Phrase oder NULL. |
Der zurückgelieferte Funktionswert hat folgende Bedeutung:
KC_HTTP_OK
Die Funktion wurde erfolgreich ausgeführt.
KC_HTTP_FUNCTION_CALL_NOT_ALLOWED
Die Funktion wurde vor dem KDCS-Aufruf INIT des Teilprogramms oder außerhalb eines HTTP-Exit-Programms aufgerufen.
KC_HTTP_NO_HTTP_CLIENT
Der Vorgang wurde nicht von einem HTTP-Client gestartet.
KC_HTTP_INVALID_STATUS_CODE
Der angegebene Status-Code ist ungültig.
KC_HTTP_STATUS_CODE_NOT_ALLOWED
Der angegebene Status-Code darf nicht übergeben werden.
KC_HTTP_REASON_PHRASE_TOO_LONG
Die angegebene Reason-Phrase ist zu lang.
KC_HTTP_REASON_PHRASE_NOT_PRINTABLE
Die Reason-Phrase enthält ein nicht abdruckbares Zeichen.