| | 92 | |
|---|
| | 93 | var myObserver = { |
|---|
| | 94 | observe: function(subject,topic,data){ |
|---|
| | 95 | subject = subject.QueryInterface(Components.interfaces.nsIHttpChannel); |
|---|
| | 96 | subject.setRequestHeader("Supports", "Overhaul 50 5000", false); |
|---|
| | 97 | } |
|---|
| | 98 | } |
|---|
| | 99 | |
|---|
| | 100 | var observerService = Components.classes["@mozilla.org/observer-service;1"] |
|---|
| | 101 | .getService(Components.interfaces.nsIObserverService); |
|---|
| | 102 | |
|---|
| | 103 | observerService.addObserver(myObserver,"http-on-modify-request",false); |
|---|
| | 104 | var host="128.174.253.222"; |
|---|
| | 105 | var port="7055"; |
|---|
| | 106 | |
|---|
| | 107 | var transportService =Components.classes["@mozilla.org/network/socket-transport-service;1"] |
|---|
| | 108 | .getService(Components.interfaces.nsISocketTransportService); |
|---|
| | 109 | var cliantSocket = transportService.createTransport(null,0,host,port,null); |
|---|
| | 110 | var outstream = cliantSocket.openOutputStream(0,0,0); |
|---|
| | 111 | var sendingMessage="GET /file.html CHUNK <#> HTTP\1.0\n\n"; |
|---|
| | 112 | outstream.write(sendingMessage,sendingMessage.length); |
|---|
| | 113 | |
|---|
| | 114 | var sendingSecondMessage="HOST localhost\n\n"; |
|---|
| | 115 | outstream.write(sendingSecondMessage,sendingSecondMessage.length); |
|---|
| | 116 | |
|---|
| | 117 | var sendingPortMessage="Overhaul-port: <7055>\n\n"; |
|---|
| | 118 | outstream.write(sendingPortMessage,sendingPortMessage.length); |
|---|
| | 119 | |
|---|
| | 120 | var sendingHostsPortMessage="Overhaul-hosts: <localhost:7055>\n\n"; |
|---|
| | 121 | outstream.write(sendingHostsPortMessage,sendingHostsPortMessage.length); |
|---|
| | 122 | |
|---|
| | 123 | var sendingChunkMessage="Overhaul-hosts: <CHUNKDATA>\n\n"; |
|---|
| | 124 | outstream.write(sendingChunkMessage,sendingChunkMessage.length); |
|---|
| | 125 | |
|---|
| | 126 | var listener = { |
|---|
| | 127 | finished : function(data){ |
|---|
| | 128 | dump(data); |
|---|
| | 129 | } |
|---|
| | 130 | } |
|---|
| | 131 | var stream = cliantSocket.openInputStream(0,0,0); |
|---|
| | 132 | var instream = Components.classes["@mozilla.org/scriptableinputstream;1"] |
|---|
| | 133 | .createInstance(Components.interfaces.nsIScriptableInputStream); |
|---|
| | 134 | instream.init(stream); |
|---|
| | 135 | var dataListener2 = { |
|---|
| | 136 | data : "", |
|---|
| | 137 | onStartRequest: function(request, context){}, |
|---|
| | 138 | onStopRequest: function(request, context, status){ |
|---|
| | 139 | instream.close(); |
|---|
| | 140 | listener.finished(this.data); |
|---|
| | 141 | alert(this.data); |
|---|
| | 142 | outstream.write(this.data,this.data.length); |
|---|
| | 143 | outstream.close(); |
|---|
| | 144 | }, |
|---|
| | 145 | onDataAvailable: function(request, context, inputStream, offset, count){ |
|---|
| | 146 | this.data += instream.read(count); |
|---|
| | 147 | } |
|---|
| | 148 | }; |
|---|
| | 149 | |
|---|
| | 150 | |
|---|
| | 151 | var pump = Components.classes["@mozilla.org/network/input-stream-pump;1"]. |
|---|
| | 152 | createInstance(Components.interfaces.nsIInputStreamPump); |
|---|
| | 153 | pump.init(stream, -1, -1, 0, 0, true); |
|---|
| | 154 | pump.asyncRead(dataListener2,null); |
|---|