Next: Parsing HTML, Previous: HTML Tables, Up: Textual Conversion Packages [Contents][Index]
(require 'http)
or (require 'cgi)
Returns a string containing lines for each element of alist; the
car
of which is followed by ‘: ’, then the cdr
.
Returns the concatenation of strings body with the
(http:header alist)
and the ‘Content-Length’ prepended.
String appearing at the bottom of error pages.
status-code and reason-phrase should be an integer and string as specified in RFC 2068. The returned page (string) will show the status-code and reason-phrase and any additional html-strings …; with *http:byline* or SLIB’s default at the bottom.
The string or symbol title is the page title. dly is a non-negative integer. The html-strings … are typically used to explain to the user why this page is being forwarded.
http:forwarding-page
returns an HTML string for a page which automatically forwards to
uri after dly seconds. The returned page (string) contains any html-strings
… followed by a manual link to uri, in case the browser does not
forward automatically.
reads the URI and query-string from input-port. If the
query is a valid ‘"POST"’ or ‘"GET"’ query, then http:serve-query
calls
serve-proc with three arguments, the request-line, query-string,
and header-alist. Otherwise, http:serve-query
calls serve-proc with the
request-line, #f, and header-alist.
If serve-proc returns a string, it is sent to output-port. If serve-proc returns a list whose first element is an integer, then an error page with the status integer which is the first element of the list and strings from the list. If serve-proc returns a list whose first element isn’t an number, then an error page with the status code 500 and strings from the list. If serve-proc returns #f, then a ‘Bad Request’ (400) page is sent to output-port.
Otherwise, http:serve-query
replies (to output-port) with appropriate HTML describing the
problem.
This example services HTTP queries from port-number:
(define socket (make-stream-socket AF_INET 0)) (and (socket:bind socket port-number) ; AF_INET INADDR_ANY (socket:listen socket 10) ; Queue up to 10 requests. (dynamic-wind (lambda () #f) (lambda () (do ((port (socket:accept socket) (socket:accept socket))) (#f) (let ((iport (duplicate-port port "r")) (oport (duplicate-port port "w"))) (http:serve-query build:serve iport oport) (close-port iport) (close-port oport)) (close-port port))) (lambda () (close-port socket))))
reads the URI and query-string from
(current-input-port)
. If the query is a valid ‘"POST"’
or ‘"GET"’ query, then cgi:serve-query
calls serve-proc with three arguments, the
request-line, query-string, and header-alist.
Otherwise, cgi:serve-query
calls serve-proc with the request-line, #f, and
header-alist.
If serve-proc returns a string, it is sent to (current-ouput-port)
.
If serve-proc returns a list whose first element is an integer, then an
error page with the status integer which is the first element of the
list and strings from the list. If serve-proc returns a list whose first
element isn’t an number, then an error page with the status code 500
and strings from the list. If serve-proc returns #f, then a ‘Bad
Request’ (400) page is sent to (current-ouput-port)
.
Otherwise, cgi:serve-query
replies (to (current-output-port)
) with
appropriate HTML describing the problem.
Returns a procedure of one argument. When that procedure is called
with a query-alist (as returned by uri:decode-query
, the
value of the ‘*command*’ association will be the command invoked
in command-table. If ‘*command*’ is not in the query-alist then the
value of ‘*suggest*’ is tried. If neither name is in the
query-alist, then the literal value ‘*default*’ is tried in
command-table.
If optional third argument is non-false, then the command is called with just the parameter-list; otherwise, command is called with the arguments described in its table.
Next: Parsing HTML, Previous: HTML Tables, Up: Textual Conversion Packages [Contents][Index]