在节点 js 中从 c# 请求

时间:2021-08-01 14:21:23

标签: c# html node.js http request

我使用 http 来接收来自 nodejs 的请求。当我在控制台中打印时,它将显示从 c# 发送的确切文本。

问题:现在的问题是先看这个


http. Createserver(fuction(req,res){

var text = "";

req.on("data",funtion(data) {
if(data! = null) {
text = data.ToString(utf8);
Console.log(text) ;
}

res.writeHead("Content":"html") ;
res.write("<html> <body> <p>"+text+"</html>") ;
res.end() 

}


}).listen(3535);

注意它只是引用不完全。

问题是在从 c# 发送请求之前响应结束

但是当我们在控制台打印时它总是处于活动状态。

有什么解决办法吗?

1 个答案:

答案 0 :(得分:0)

响应结束,因为您将响应发送到 on("data") 块内的客户端 而不是在“结束”事件中发送响应 还要设置内容类型而不是

res.writeHead("Content":"html") ;

你需要使用

res.setHeader('Content-Type', 'text/html');

完整的工作服务器如下

const http = require('http');
http.createServer((req, res) => {
  const { headers, method, url } = req;
  let bodyChunks = [];
  var text = "";
  req.on('error', (err) => {
    console.error(err);
  }).on('data', (chunk) => {
    bodyChunks.push(chunk);
  }).on('end', () => {
    text = Buffer.concat(bodyChunks).toString();


    res.setHeader('Content-Type', 'text/html');
    res.write("<html> <body> <p>"+text+"</html>") ;
    res.end() 
 
  });
}).listen(3535);