Sean True
seant at alum.mit.edu
Mon Jun 5 23:11:07 EST 2000
The following code is so inelegant, I'm a little embarrassed to share it, but it's a handy handler for starting to poke around inside the Apache req structure, and so informative that I thought I'd share. Grisha might want to comment as to why some of the attributes of the req don't dump the way I tried to dump them. Could just be the late night stupids on my part. -- Sean ================= from mod_python import apache def dumpdict(req,title, d): req.write("*"+title + "\n") for key in d.keys(): req.write(str(key) + ": " + str(d[key]) + "\n") def dump(req,title,s): req.write(title+": "+s+"\n") def handler(req): req.send_http_header() dump(req,"Request", req.the_request) dump(req,"Protocol", req.protocol) dump(req,"Hostname", req.hostname) dump(req,"Status line", req.status_line) dump(req, "Method", req.method) dump(req,"Content handler", req.handler) dump(req, "Unparsed uri", req.unparsed_uri) dump(req, "Uri", req.uri) dump(req, "Filename", req.filename) dump(req, "Path info", req.path_info) dump(req, "Args", req.args) dump(req, "Mtime", str(req.mtime)) dump(req, "Remaining", str(req.remaining)) # The following don't work. #dump(req, "Content type", req.content_type) #dump(req, "Content encoding", req.content_encoding) #dump(req, "Parsed uri", str(req.parsed_uri)) #dump(req, "finfo", str(req.finfo)) dumpdict(req, "headers_in",req.headers_in) dumpdict(req, "headers_out", req.headers_out) dumpdict(req, "err_headers_out", req.err_headers_out) dumpdict(req, "subprocess_env", req.subprocess_env) dumpdict(req, "notes", req.notes) return apache.OK ================ Output on my system: (with domain deleted for privacy) ================ Request: GET /foo.xhtml?fu=bar HTTP/1.0 Protocol: HTTP/1.0 Hostname: www.[..].com Status line: 200 OK Method: GET Content handler: python-program Unparsed uri: /foo.xhtml?fu=bar Uri: /foo.xhtml Filename: /usr/local/apache/htdocs/foo.xhtml Path info: Args: fu=bar Mtime: 0 Remaining: 0 *headers_in Accept: */* Accept-Language: en-us Connection: Keep-Alive Host: www.[..].com User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Windows 98) *headers_out Connection: close Content-Type: text/plain *err_headers_out *subprocess_env SCRIPT_URL: /foo.xhtml SCRIPT_URI: http://www.[..]/foo.xhtml GATEWAY_INTERFACE: CGI/1.1 SERVER_PROTOCOL: HTTP/1.0 REQUEST_METHOD: GET QUERY_STRING: fu=bar REQUEST_URI: /foo.xhtml?fu=bar SCRIPT_NAME: /foo.xhtml *notes python_request_ptr: 135846824 ========== Sean True seant at alum.mit.edu
|