The Wayback Machine - https://web.archive.org/web/20081015165230/http://developer.mozilla.org:80/en/nsIHttpChannel

Mozilla.com

  1. MDC
  2. Main Page
  3. nsIHttpChannel
Table of contents
  1. 1. Method overview
  2. 2. Attributes
  3. 3. Methods
    1. 3.1. getRequestHeader()
          1. 3.1.1.1.1. Parameters
          2. 3.1.1.1.2. Return value
          3. 3.1.1.1.3. Exceptions
    2. 3.2. setRequestHeader()
          1. 3.2.1.1.1. Parameters
          2. 3.2.1.1.2. Exceptions
    3. 3.3. visitRequestHeaders()
          1. 3.3.1.1.1. Parameters
    4. 3.4. getResponseHeader()
          1. 3.4.1.1.1. Parameters
          2. 3.4.1.1.2. Return value
          3. 3.4.1.1.3. Exceptions
    5. 3.5. setResponseHeader()
          1. 3.5.1.1.1. Parameters
          2. 3.5.1.1.2. Exceptions
    6. 3.6. visitResponseHeaders()
          1. 3.6.1.1.1. Parameters
          2. 3.6.1.1.2. Exceptions
    7. 3.7. isNoStoreResponse()
          1. 3.7.1.1.1. Parameters
          2. 3.7.1.1.2. Exceptions
    8. 3.8. isNoCacheResponse()
          1. 3.8.1.1.1. Parameters
          2. 3.8.1.1.2. Exceptions

nsIHttpChannel

Table of contents
  1. 1. Method overview
  2. 2. Attributes
  3. 3. Methods
    1. 3.1. getRequestHeader()
          1. 3.1.1.1.1. Parameters
          2. 3.1.1.1.2. Return value
          3. 3.1.1.1.3. Exceptions
    2. 3.2. setRequestHeader()
          1. 3.2.1.1.1. Parameters
          2. 3.2.1.1.2. Exceptions
    3. 3.3. visitRequestHeaders()
          1. 3.3.1.1.1. Parameters
    4. 3.4. getResponseHeader()
          1. 3.4.1.1.1. Parameters
          2. 3.4.1.1.2. Return value
          3. 3.4.1.1.3. Exceptions
    5. 3.5. setResponseHeader()
          1. 3.5.1.1.1. Parameters
          2. 3.5.1.1.2. Exceptions
    6. 3.6. visitResponseHeaders()
          1. 3.6.1.1.1. Parameters
          2. 3.6.1.1.2. Exceptions
    7. 3.7. isNoStoreResponse()
          1. 3.7.1.1.1. Parameters
          2. 3.7.1.1.2. Exceptions
    8. 3.8. isNoCacheResponse()
          1. 3.8.1.1.1. Parameters
          2. 3.8.1.1.2. Exceptions

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.


nsIHttpChannel is defined in netwerk/protocol/http/public/nsIHttpChannel.idl . It is scriptable and has been frozen since Mozilla 1.3 .

Inherits from: nsIChannel.

To create an HTTP channel, use nsIIOService with a HTTP URI, e.g.:

var ios = Components.classes["@mozilla.org/network/io-service;1"]
                    .getService(Components.interfaces.nsIIOService);
var ch = ios.newChannel("http://www.example.com/", null, null);

Method overview

ACString getRequestHeader(in ACString aHeader);
void setRequestHeader(in ACString aHeader, in ACString aValue, in boolean aMerge);
void visitRequestHeaders(in nsIHttpHeaderVisitor aVisitor);
ACString getResponseHeader(in ACString header);
void setResponseHeader(in ACString header, in ACString value, in boolean merge);
void visitResponseHeaders(in nsIHttpHeaderVisitor aVisitor);
boolean isNoStoreResponse();
boolean isNoCacheResponse();

Attributes

Attribute Type Description
requestMethod ACString This attribute may only be set before the channel is opened. Set/get 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; however, after setting the upload data, it may be necessary to set the request method explicitly. The documentation for nsIUploadChannel has further details.

Throws an NS_ERROR_IN_PROGRESS if set after the channel has been opened.

referrer nsIURI This attribute may only be set before the channel is opened. Get/set 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 Referer header if the URI does not pass certain security checks (e.g., a "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.

Throws an NS_ERROR_IN_PROGRESS if set after the channel has been opened.

allowPipelining boolean This attribute is a hint to the channel to indicate 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 is true by default, though other factors may prevent pipelining.

Throws an NS_ERROR_IN_PROGRESS if set after the channel has been opened.

redirectionLimit long This attribute specifies 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 it will be assigned a value to its

responseStatus long Get the HTTP response code (e.g., 200).

Throws NS_ERROR_NOT_AVAILABLE if called before the response has been received (before onStartRequest). Read only

responseStatusText ACString Get the HTTP response status text (e.g., "OK").

^ 

Note: This returns the raw (possibly 8-bit) text from the server. There are no assumptions made about the charset of the returned text. You have been warned!

Throws NS_ERROR_NOT_AVAILABLE if called before the response has been received (before onStartRequest). Read only

requestSucceeded boolean Returns true if the HTTP response code indicates success. The value of nsIRequest::status will be NS_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.

Throws NS_ERROR_NOT_AVAILABLE if called before the response has been received (before onStartRequest). Read only

Methods

getRequestHeader()

This method is called to get the value of a particular request header..

 ACString getRequestHeader(
   in ACString aHeader
 );
Parameters
aHeader
The case-insensitive name of the request header to query (e.g., "Cache-Control").
Return value

The value of the request header.

Exceptions

Throws NS_ERROR_NOT_AVAILABLE if the header is not set.

setRequestHeader()

This method is called to 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. This method may only be called before the channel is opened. If aValue is empty and aMerge is false, the header will be cleared.

 void setRequestHeader(
   in ACString aHeader,
   in ACString aValue,
   in boolean aMerge
 );
Parameters
aHeader
The case-insensitive name of the request header to query (e.g., "Cookie").
aValue
The request header value to set (e.g., "X=1").
aMerge
If true, 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 is false, then the header value will be replaced with the contents of aValue.
Exceptions

Throws NS_ERROR_IN_PROGRESS if called after the channel has been opened.

visitRequestHeaders()

Call this method to visit all request headers. Calling setRequestHeader while visiting request headers has undefined behavior. Don't do it!

 void visitRequestHeaders(
   in nsIHttpHeaderVisitor aVisitor
 );
Parameters
aVisitor
The header visitor instance.

getResponseHeader()

Get the value of a particular response header.

 ACString getResponseHeader(
   in ACString header
 );
Parameters
aHeader
The case-insensitive name of the response header to query (e.g., "Set-Cookie").
Return value

Return the value of the response header.

Exceptions

Throws NS_ERROR_NOT_AVAILABLE if called before the response has been received (before onStartRequest) or if the header is not set in the response.

setResponseHeader()

Set 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. If aValue is empty and aMerge is false, the header will be cleared.

 void setResponseHeader(
   in ACString header,
   in ACString value,
   in boolean merge
 );
Parameters
aHeader
The case-insensitive name of the response header to set(e.g., "Cache-Cookie").
value
The response header value to set (e.g., "no-cache").
merge
If true, 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 is false, then the header value will be replaced with the contents of aValue.
Exceptions

Throws NS_ERROR_NOT_AVAILABLE if called before the response has been received (before onStartRequest).

Throws NS_ERROR_ILLEGAL_VALUE if changing the value of this response header is not allowed.

visitResponseHeaders()

Call this method to visit all response headers. Calling setResponseHeader while visiting response headers has undefined behavior. Don't do it!

 void visitResponseHeaders(
   in nsIHttpHeaderVisitor aVisitor
 );
Parameters
aVisitor
The header visitor instance.
Exceptions

Throws NS_ERROR_NOT_AVAILABLE if called before the response has been received (before onStartRequest).

isNoStoreResponse()

Returns true if the server sent a "Cache-Control: no-store" response header.

 boolean isNoStoreResponse(
 );
Parameters

None.

Exceptions

Throws NS_ERROR_NOT_AVAILABLE if called before the response has been received (before onStartRequest).

isNoCacheResponse()

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.

 boolean isNoCacheResponse(
 );
Parameters

None.

Exceptions

Throws NS_ERROR_NOT_AVAILABLE if called before the response has been received (before onStartRequest).

Page last modified 12:13, 26 Feb 2008 by Nickolay

Files (0)