Funzioni di libreria: chiamate ISAPI |
Le funzioni di questa categoria comprendono alcune chiamate per interfacciarsi
con Microsoft® Internet Information Server; queste funzioni sono riservate alla
versione ISAPI di Proteus. Ricordiamo che la variabile pubblica predefinita OS è uguale a 3 se l'interprete è Proteus
ISAPI; inoltre, è predefinita la direttiva ISAPI (è possibile condizionare l'esecuzione di codice ISAPI dentro
!ifdef
ISAPI..!endif).
Le funzioni sono:
ISAPIGETDATA()
preleva e ritorna una stringa contenente il contenuto dell'operazione di POST effettuata dal client; lanciare URLDECODE sul risultato.
ISAPIGETVAR(cVarName)
ritorna il contenuto della variabile specificata; cVarName può essere una delle seguenti stringhe:
- CONTENT_LENGTH
- REQUEST_METHOD
- CONTENT_TYPE
- PATH_INFO
- PATH_TRANSLATED
- QUERY_STRING
- ALL_HTTP
- AUTH_PASS
- AUTH_TYPE
- GATEWAY_INTERFACE
- HTTP_ACCEPT
- REMOTE_ADDR
- REMOTE_HOST
- REMOTE_USER
- SCRIPT_NAME
- SERVER_NAME
- SERVER_PORT
- SERVER_PROTOCOL
- SERVER_SOFTWARE
Si faccia riferimento alla documentazione di IIS per ulteriori informazioni.
ISAPISERVFUNC(nRequest, nStatus, cHeader)
invoca la funzione estesa corrispondente a nRequest con nStatus e cHeader specificati; ritorna 0 se ha avuto successo, -1 altrimenti. Le possibili richieste sono:
Valore Descrizione 1 Invia un messaggio 302 (URL Redirect) al client. Nessuna elaborazione ulteriore è richiesta dopo la chiamata. Questa operazione è simile allo specificare "URI: <URL>" nell'intestazione di uno script CGI. 2 Invia il dato specificato dall'URL al client, come se il client avesse richiesto l'URL. Nessuna elaborazione ulteriore è richiesta dopo la chiamata. 3 Invia una risposta completa da server HTTP, incluso lo stato, la versione del server, l'ora del messaggio ed il tipo MIME. 4 Avverte il server che l'elaborazione è completata. Si faccia riferimento alla documentazione di IIS per ulteriori informazioni.
ISAPITXFILE(cPathName, cMimeType)
trasmette al client il file corrispondente a cPathName in modo asincrono; lo script può terminare subito dopo questa funzione (se ha avuto successo, cioé se ha ritornato 0). Un esempio di cMimeType per poter ritornare un file binario qualsiasi, se FileName è la seguente funzione:
FUNCTION FileName(S) P = STRRSTR(S, "\\") IF NEQ(P, 0) RETURN RESTFROM(S, INC(P)) FI RETURN Sè il seguente:
"Content-type: application/binary;name=\"" FileName(S) \ "\"\r\nContent-Disposition: inline; filename=\"" FileName(S) "\""
ISAPIWRITELOG(cText)
imposta la stringa da scrivere nel log al termine della transazione
Inizio pagina | Prossimo argomento | Argomento precedente | Indice per argomenti | Indice analitico |