nodejs获取原始https请求和响应



我正在回答这个问题

正在检索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:简单的服务器-无依赖

最新更新