nsIMIMEInputStream

The MIME stream separates headers and a datastream. It also allows automatic creation of the content-length header.
Inherits from: nsIInputStream Last changed in Gecko 1.3

Implemented by: @mozilla.org/network/mime-input-stream;1. To create an instance, use:

var mimeInputStream = Components.classes["@mozilla.org/network/mime-input-stream;1"]
                      .createInstance(Components.interfaces.nsIMIMEInputStream);

Method overview

void addHeader(in string name, in string value);
void setData(in nsIInputStream stream);

Attributes

Attribute Type Description
addContentLength boolean When true a "Content-Length" header is automatically added to the stream. The value of the content-length is automatically calculated using the available() method on the data stream. The value is recalculated every time the stream is rewound to the start. Not allowed to be changed once the stream has been started to be read.

Methods

addHeader()

Adds an additional header to the stream on the form "name: value". May not be called once the stream has been started to be read.

void addHeader(
  in string name,
  in string value
);
Parameters
name
Name of the header.
value
Value of the header.

setData()

Sets data-stream. May not be called once the stream has been started to be read. The cursor of the new stream should be located at the beginning of the stream if the implementation of the nsIMIMEInputStream also is used as an nsISeekableStream.

void setData(
  in nsIInputStream stream
);
Parameters
stream
Stream containing the data for the stream.

Example

var postData = Components.classes["@mozilla.org/network/mime-input-stream;1"]
               .createInstance(Components.interfaces.nsIMIMEInputStream);
postData.addHeader("Content-Type", "application/x-www-form-urlencoded");
postData.addContentLength = true;
postData.setData(stringStream);