1const CC = Components.Constructor; 2const BinaryInputStream = CC("@mozilla.org/binaryinputstream;1", 3 "nsIBinaryInputStream", 4 "setInputStream"); 5 6function handleRequest(request, response) { 7 response.setHeader("Content-Type", "text/plain", false); 8 if (request.method == "GET") { 9 response.write(request.queryString); 10 } else { 11 var body = new BinaryInputStream(request.bodyInputStream); 12 13 var avail; 14 var bytes = []; 15 16 while ((avail = body.available()) > 0) 17 Array.prototype.push.apply(bytes, body.readByteArray(avail)); 18 19 var data = String.fromCharCode.apply(null, bytes); 20 if (request.queryString) { 21 data = data + "?" + request.queryString; 22 } 23 response.bodyOutputStream.write(data, data.length); 24 } 25} 26