you will need to use nsIUploadChannel and nsIHttpChannel to setup a post
request. here's some sample code:
var chan = ...
var uploadChan = chan.QueryInterface(
uploadChan.setUploadStream(content, contentType, contentLen);
var httpChan = chan.QueryInterface(
httpChan.method = "POST";
now, when you call "asyncOpen" on the channel, it will issue a HTTP POST
request instead of a GET. it will send the data contained in "content".
content must support nsIInputStream. you can either provide your own
implementation of nsIInputStream or use one of the existing
implementations found in xpcom/io, but beware none of the existing
implementations are frozen.