无法使用C#HttpClient将数据发布到nodejs服务器

我正在尝试使用C#将数据发送到节点服务器。 这里是代码:

Node + Express:

var host = "127.0.0.1"; var port = 1337; var express = require("express"); var app = express(); app.get("/", function(request, response){ //root dir response.send("Hello!!"); }); app.post("/build", function(request, response){ //root dir response.send("This is the post method"); }); app.listen(port, host); 

C#方面:

 using System.Net.Http; const string urlTemplate = "http://localhost:1337/build"; var userQuery = new User(); userQuery.Name = "Test"; userQuery.Location= "Test Location"; userQuery.Age= 26; var client = new HttpClient(); client.DefaultRequestHeaders.TryAddWithoutValidation("Content-Type", "application/json; charset=utf-8"); client.Timeout = TimeSpan.FromMilliseconds(600000); var task = client.PostAsJsonAsync(urlTemplate, userQuery); var result = task.Result.Content.ReadAsStringAsync().Result; 

我能够从服务器获得响应。 但是当我试图说request.body获取posted信息, request.body is undefined

这是请求对象的外观: 在这里输入图像说明

这是query and params外观: 在这里输入图像说明

我错过了什么吗?

当您试图访问发布到节点服务器的正文时,您需要使用正文分析器中间件来实现此目的。 见下文:

 var express = require('express') var bodyParser = require('body-parser') var app = express() // parse application/x-www-form-urlencoded app.use(bodyParser.urlencoded({ extended: false })) // parse application/json app.use(bodyParser.json())