WebKit.HTTPResponse
index
/usr/local/share/webware/WebKit/HTTPResponse.py

 
Modules
       
mx.DateTime
WebUtils
os
sys
time

 
Classes
       
WebKit.Response.Response(WebKit.Message.Message)
HTTPResponse

 
class HTTPResponse(WebKit.Response.Response)
    
Method resolution order:
HTTPResponse
WebKit.Response.Response
WebKit.Message.Message
WebKit.Object.Object
__builtin__.object
MiscUtils.NamedValueAccess.NamedValueAccess

Methods defined here:
__init__(self, transaction, strmOut, headers=None)
Initialize the request.
addCookie(self, cookie)
Add a cookie that will be sent with this response.
 
cookie is a Cookie object instance. See WebKit.Cookie.
addHeader(self, name, value)
deprecated: HTTPResponse.addHeader() on 01/02/12 in 0.6.
 
Use setHeader() instead.@
 
Add a specific header by name.
clearCookies(self)
Clear all the cookies.
clearHeaders(self)
Clear all the headers.
 
You might consider a setHeader('Content-type', 'text/html')
or something similar after this.
commit(self)
Commit response.
 
Write out all headers to the reponse stream, and tell the underlying
response stream it can start sending data.
cookie(self, name)
Return the value of the specified cookie.
cookies(self)
Get all the cookies.
 
Returns a dictionary-style object of all Cookie objects that will
be sent with this response.
delCookie(self, name)
Delete a cookie at the browser.
 
To do so, one has to create and send to the browser a cookie with
parameters that will cause the browser to delete it.
deliver(self)
Deliver response.
 
The final step in the processing cycle.
Not used for much with responseStreams added.
displayError(self, err)
Display HTTPException errors, with status codes.
flush(self, autoFlush=True)
Send all accumulated response data now.
 
Commits the response headers and tells the underlying stream to flush.
if autoFlush is true, the responseStream will flush itself automatically
from now on.
hasCookie(self, name)
Return True if the specified cookie is present.
hasHeader(self, name)
header(self, name, default=<class MiscUtils.NoDefault at 0x8c81d0>)
Return the value of the specified header.
headers(self, name=None)
Return all the headers.
 
Returns a dictionary-style object of all header objects contained by
this request.
isCommitted(self)
Check whether response is already commited.
 
Checks whether the reponse has already been partially or completely sent.
If this returns true, no new headers/cookies can be added
to the response.
mergeTextHeaders(self, headerstr)
Merge text into our headers.
 
Given a string of headers (separated by newlines),
merge them into our headers.
rawResponse(self)
Return the final contents of the response.
 
Don't invoke this method until after deliver().
 
Returns a dictionary representing the response containing only
strings, numbers, lists, tuples, etc. with no backreferences.
That means you don't need any special imports to examine the contents
and you can marshal it. Currently there are two keys. 'headers' is
list of tuples each of which contains two strings: the header and
it's value. 'contents' is a string (that may be binary, for example,
if an image were being returned).
recordSession(self)
Record session ID.
 
Invoked by commit() to record the session ID in the response
(if a session exists). This implementation sets a cookie for
that purpose. For people who don't like sweets, a future version
could check a setting and instead of using cookies, could parse
the HTML and update all the relevant URLs to include the session ID
(which implies a big performance hit). Or we could require site
developers to always pass their URLs through a function which adds
the session ID (which implies pain). Personally, I'd rather just
use cookies. You can experiment with different techniques by
subclassing Session and overriding this method. Just make sure
Application knows which "session" class to use.
 
It should be also considered to automatically add the server port
to the cookie name in order to distinguish application instances
running on different ports on the same server, or to use the port
cookie-attribute introduced with RFC 2965 for that purpose.
reset(self)
Reset the response (such as headers, cookies and contents).
sendError(self, code, msg='')
Set the status code to the specified code and message.
sendRedirect(self, url)
Redirect to another url.
 
        This method sets the headers and content for the redirect, but does
        NOT change the cookies. Use clearCookies() as appropriate.
 
See http://www.ietf.org/rfc/rfc2616 (section 10.3.3),
http://www.ietf.org/rfc/rfc3875 (section 6.2.3) and
http://support.microsoft.com/kb/176113
(removing cookies by IIS is considered a bug).
setCookie(self, name, value, path='/', expires='ONCLOSE', secure=False)
Set a cookie.
 
You can also set the path (which defaults to /).
You can also set when it expires. It can expire:
  'NOW': this is the same as trying to delete it, but it
    doesn't really seem to work in IE
  'ONCLOSE': the default behavior for cookies (expires when
             the browser closes)
  'NEVER': some time in the far, far future.
  integer: a timestamp value
  tuple: a tuple, as created by the time module
  DateTime: an mxDateTime object for the time (assumed to
    be *local*, not GMT time)
  DateTimeDelta: a interval from the present, e.g.,
    DateTime.DateTimeDelta(month=1) (1 month in the future)
    '+...': a time in the future, '...' should be something like
    1w (1 week), 3h46m (3:45), etc.  You can use y (year),
    b (month), w (week), d (day), h (hour), m (minute),
    s (second). This is done by the MiscUtils.DateInterval.
setErrorHeaders(self, err)
Set error headers for an HTTPException.
setHeader(self, name, value)
Set a specific header by name.
 
Parameters:
        name: the header name
        value: the header value
setStatus(self, code, msg='')
Set the status code of the response, such as 200, 'OK'.
size(self)
Return the size of the final contents of the response.
 
Don't invoke this method until after deliver().
write(self, charstr=None)
Write charstr to the response stream.
writeHeaders(self)
Write headers to the response stream. Used internally.

Methods inherited from WebKit.Response.Response:
clearTransaction(self)
endTime(self)
recordEndTime(self)
Record the end time of the response.
 
Stores the current time as the end time of the response. This should
be invoked at the end of deliver(). It may also be invoked by the
application for those responses that never deliver due to an error.
streamOut(self)

Methods inherited from WebKit.Message.Message:
arg(self, name, default=<class MiscUtils.NoDefault at 0x8c81d0>)
argNames(self)
Returns a list of argument names.
clearArgs(self)
contentLength(self)
Returns the length of the message body or -1 if not known.
contentType(self)
Returns the MIME type of the message body or None if not known.
deleteArg(self, name)
hasArg(self, name)
protocol(self)
Return the protocol-
 
Returns the name and version of the protocol the message uses
in the form protocol/majorVersion.minorVersion, for example, HTTP/1.1.
setArg(self, name, value)
writeExceptionReport(self, handler)

Methods inherited from WebKit.Object.Object:
deprecated(self, method)
Output a deprecation warning.
 
The implementation of WebKit sometimes invokes this method which prints
a warning that the method you are using has been deprecated.
This method expects that deprecated methods say so at the beginning of
their doc string and terminate that msg with @. For example:
 
        DEPRECATED: Class.foo() on 01/24/01 in ver 0.5. Use Class.bar() instead. @
 
Putting this information in the doc string is important for accuracy
in the generated docs.
 
Example call:
        deprecated(self.foo)

Data descriptors inherited from WebKit.Object.Object:
__dict__
dictionary for instance variables (if defined)
__weakref__
list of weak references to the object (if defined)

Methods inherited from MiscUtils.NamedValueAccess.NamedValueAccess:
handleUnknownSetKey(self, key)
hasValueForKey(self, key)
Check whether key is available.
 
Returns true if the key is available, although that does not guarantee
that there will not be errors caused by retrieving the key.
hasValueForName(self, keysString)
Check whether name is available.
resetKeyBindings(self)
Rest all key bindings, releasing alreaedy referenced values.
setValueForKey(self, key, value)
Set value for a given key.
 
Suppose key is 'foo'.
This method sets the value with the following precedence:
        1. Public attributes before private attributes
        2. Methods before non-methods
 
More specifically, this method then uses one of the following:
        @@ 2000-03-04 ce: fill in
 
... or invokes handleUnknownSetKey().
valueForKey(self, key, default=<class MiscUtils.NoDefault at 0x8c81d0>)
Get value for given key.
 
Suppose key is 'foo'.
This method returns the value with the following precedence:
        1. Methods before non-methods
        2. Public attributes before private attributes
 
More specifically, this method then returns one of the following:
        * foo()
        * _foo()
        * self.foo
        * self._foo
 
... or default, if it was specified,
otherwise invokes and returns result of valueForUnknownKey().
Note that valueForUnknownKey() normally returns an exception.
 
See valueForName() which is a more advanced version of this method
that allows multiple, qualified keys.
valueForKeySequence(self, listOfKeys, default=None)
Get the value for the given list of keys.
valueForName(self, keysString, default=None)
Get the value for the given keysString.
 
This is the more advanced version of valueForKey(), which can only
handle single names. This method can handle
        'foo', 'foo1.foo2', 'a.b.c.d', etc.
It will traverse dictionaries if needed.
valueForUnknownKey(self, key, default)
valuesForNames(self, keys, default=None, defaults=None, forgive=0, includeNames=0)
Get all values for given names.
 
Returns a list of values that match the given keys, each of which is
passed through valueForName() and so could be of the form 'a.b.c'.
 
keys and defaults are sequences.
default is any kind of object.
forgive and includeNames are flags.
 
If default is not None, then it is substituted when a key is not found.
Otherwise, if defaults is not None, then it's corresponding/parallel
value for the current key is substituted when a key is not found.
Otherwise, if forgive is true, then unknown keys simply don't produce
any values.
Otherwise, if default and defaults are None, and forgive is false,
then the unknown keys will probably raise an exception through
valueForUnknownKey() although that method can always return
a final, default value.
if keys is None, then None is returned.
If keys is an empty list, then None is returned.
Often these last four arguments are specified by key.
Examples:
        names = ['origin.x', 'origin.y', 'size.width', 'size.height']
        obj.valuesForNames(names)
        obj.valuesForNames(names, default=0.0)
        obj.valuesForNames(names, defaults=[0.0, 0.0, 100.0, 100.0])
        obj.valuesForNames(names, forgive=0)
@@ 2000-03-04 ce: includeNames is only supported when forgive=1.
        It should be supported for the other cases.
        It should be documented.
        It should be included in the test cases.

 
Functions
       
StringIO(...)
StringIO([s]) -- Return a StringIO-like stream for reading or writing

 
Data
        debug = False