我正在回答这个问题
正在检索http。服务器响应主体
我试图捕获https请求和响应的原始字符串,对于http,它可以很好地进行
var http = require('http');
var util = require('util');
var req,res;
var server = http.createServer(onrequest);
server.listen(81);
server.on('connection',socket=>{
console.log('*** connection ***');
req = '';
res = '';
socket.on('data',data=>{
req += data.toString();
});
var write = socket.write
socket.write=function(data,encoding,callback){
res += data.toString();
write.apply(socket,arguments);
}//write
});
function onrequest(request,response){
console.log('*** request : '+request.url+' ***');
response.on('finish',()=>{
console.log('--- request ---');
console.log('['+req+']');
console.log();
console.log('--- response ---');
console.log('['+res+']');
});
request.on('data',data=>{});
request.on('end',()=>response.end('Hi. This is my http response.'));
}//onresquest
使用单个卷曲请求简化事务
curl http://localhost:81/
提供了所需的数据,祝贺我对我的项目的思考。。nope
使用以下代码的https时
var key; // = .....
var cert; // = ....
var server = https.createServer({key,cert},onrequest);
再次使用卷曲
curl -k https://localhost:81/
没有记录任何数据,问题是这个
在连接事件上,所传递的套接字是"套接字"类型;插座";大概是一个net.socket
传递给onrequest函数的套接字是类型";tlssocket";
所以我想也许我可以使用下面的";双工;它们都共享,但是当我尝试将数据上事件添加到双工时,使用任一
//on connection
var duplex = socket.__proto__;
duplex.on('data',data=>{
或
duplex.on.call(duplex,'data',data=>
它在Node.js JavaScript运行时失败
有人知道如何走得更远吗?
相关问题:
在NodeJS 中获取原始HTTP响应
如何使用Node.js中的请求库获取原始HTTP消息体?
okey dokey
解决方案是使用";secureConnection";事件,就像这样:
var https = require('https');
var req,res;
var key; // = ...
var cert; // = ...
var server = https.createServer({key,cert},onrequest);
server.listen(81);
server.on('secureConnection',socket=>{
console.log('*** connection ***');
req = '';
res = '';
socket.on('data',data=>{
req += data.toString();
});
var write = socket.write
socket.write=function(data,encoding,callback){
res += data.toString();
write.apply(socket,arguments);
}//write
});
function onrequest(request,response){
console.log('*** request : '+request.url+' ***');
response.on('finish',()=>{
console.log('--- request ---');
console.log('['+req+']');
console.log();
console.log('--- response ---');
console.log('['+res+']');
});
request.on('data',data=>{});
request.on('end',()=>response.end('Hi. This is my http response.'));
}//onresquest
这可以看到的实现
github:简单的服务器-无依赖