You are currently viewing a snapshot of www.mozilla.org taken on April 21, 2008. Most of this content is highly out of date (some pages haven't been updated since the project began in 1998) and exists for historical purposes only. If there are any pages on this archive site that you think should be added back to www.mozilla.org, please file a bug.
nsIHttpChannel
This interface allows for the modification of HTTP request parameters and the inspection of the resulting HTTP response status and headers when they become available. It is scriptable.
Modifying request parameters after
asyncOpen
has been called is an error.Gets the value of a particular request header.
Syntax:
ACString nsIHttpChannel::getRequestHeader( in ACString aHeader)
Parameters:
Returns:
Set the value of a particular request header. This method allows, for example, the cookies module to add "Cookie" headers to the outgoing HTTP request.
Syntax:
void nsIHttpChannel::setRequestHeader( in ACString aHeader, in ACString aValue, in boolean aMerge)
Parameters:
aMerge
: IfTRUE
, the new header value will be merged with any existing values for the specified header. This flag is ignored if the specified header does not support merging (e.g., the "Content-Type" header can only have one value). The list of headers for which this flag is ignored is an implementation detail. If this flag isFALSE
, then the header value will be replaced with the contents ofaValue
.
Note: If
aValue
is empty andaMerge
isFALSE
, the header will be cleared.nsresult:
Note: Calling
setRequestHeader
while visiting request headers has undefined behavior. Don't do it!Syntax:
void nsIHttpChannel::visitRequestHeaders( in nsIHttpHeaderVisitor aVisitor)
Parameters:
nsresult:
Gets and sets the HTTP request method (default is "GET"). Setter is case insensitive; getter returns an uppercase string.
Note: The data for a "POST" or "PUT" request can be configured via
nsIUploadChannel,
but after setting the upload data, it may still be necessary to set the request method explicitly. The documentation for
nsIUploadChannel
has further details.Gets and sets the HTTP referrer URI. This is the address (URI) of the resource from which this channel's URI was obtained (see RFC2616 section 14.36).
Note: The channel may silently refuse to set the Referrer header if the URI does not pass certain security checks (e.g., an https: URL will never be sent as the referrer for a plaintext HTTP request). The implementation is not required to throw an exception when the referrer URI is rejected.
Gets and sets a hint to the channel whether or not the underlying HTTP transaction should be allowed to be pipelined with other transactions. This should be set to
FALSE
, for example, if the application knows that the corresponding document is likely to be very large. This attribute isTRUE
by default, though other factors may prevent pipelining.Gets and sets the number of redirects this channel is allowed to make. If zero, the channel will fail to redirect and will generate a
NS_ERROR_REDIRECT_LOOP
failure status.Note: An HTTP redirect results in a new channel being created. If the new channel supports
nsIHttpChannel
, then the value of itsredirectionLimit
attribute will be set at one less than the value of the redirected channel'sredirectionLimit
attribute. The initial value for this attribute may be a configurable preference (depending on the implementation).Accessing response information before the
onStartRequest
event is an error.Gets the value of a particular response header.
Syntax:
ACString nsIHttpChannel::getResponseHeader( in ACString header)
Parameters:
Returns:
Sets the value of a particular response header. This method allows, for example, the HTML content sink to inform the HTTP channel about HTTP-EQUIV headers found in HTML <META> tags.
Syntax:
void nsIHttpChannel::setResponseHeader( in ACString header, in ACString value, in boolean merge)
Parameters:
merge
: IfTRUE
, the new header value will be merged with any existing values for the specified header. This flag is ignored if the specified header does not support merging (e.g., the "Content-Type" header can only have one value). The list of headers for which this flag is ignored is an implementation detail. If this flag isFALSE
, then the header value will be replaced with the contents ofvalue.
Note: If
value
is empty andmerge
isFALSE
, the header will be cleared.nsresult:
Note: Calling
setResponseHeader
while visiting response headers has undefined behavior. Don't do it!Syntax:
void nsIHttpChannel::visitResponseHeaders( in nsIHttpHeaderVisitor aVisitor)
Parameters:
nsresult:
Checks for "Cache-Control: no-store" response header.
Syntax:
boolean nsIHttpChannel::isNoStoreResponse()
Parameters:
Returns:
Checks for Cache-control: no-cache" response header.
Syntax:
boolean nsIHttpChannel::isNoCacheResponse()
Parameters:
Returns:
TRUE
if the server sent the equivalent of a "Cache-control: no-cache" response header. Equivalent response headers include: "Pragma: no-cache", "Expires: 0", and "Expires" with a date value in the past relative to the value of the "Date" header.
Gets the HTTP response code (e.g., 200).
Gets the HTTP response status text (e.g., "OK").
Note: This returns the raw (possibly 8-bit) text from the server. No assumptions are made about the charset of the returned text. The implementer is responsible for dealing with these issues.
Returns
TRUE
if the HTTP response code indicates success. The value ofnsIRequest::status
will beNS_OK
even when processing a 404 response because a 404 response may include a message body that (in some cases) should be shown to the user.Use this attribute to distinguish server error pages from normal pages, instead of comparing the response status manually against the set of valid response codes, if that is required by your application.
Written by:Ellen Evans | Comments, questions, complaints?
Bug 143387 |