我有一个 web 服务,用 nodejs 编写并开发 ac# 客户端。我对 GET 方法没有任何问题,但对 POST 有问题。
这是我的客户代码
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Method = methodType.ToString();
UTF8Encoding encoding = new UTF8Encoding();
if (!string.IsNullOrEmpty(content))
{
Byte[] byteArray = encoding.GetBytes(content);
request.ContentLength = byteArray.Length;
using (var dataStream = request.GetRequestStream())
{
dataStream.Write(byteArray, 0, byteArray.Length);
}
}
request.ContentType = "application/json";
try
{
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
{
using (var streamReader = new StreamReader(response.GetResponseStream()))
{
var result = streamReader.ReadToEnd();
}
return response;
}
}
.....
这是我的服务器代码
router.post('/api/activation/activate', urlencodedParser, (req, res, next) => {
return new Promise(function (resolve, reject) {
(async function () {
try {
routerAppFeature.Delete(req.body.type.toUpperCase(), req.body.id);
console.log(req.body.HardwareId);
console.log(req.params.HardwareId)
console.log(req.query.HardwareId);
var result = { "data": "Okay :)" + req.body.HardwareId, "errorCode": "-1" };
res.json(result);
} catch (error) {
console.log('!!Error in activate method: ' + error);
return reject(error);
}
})();
}).catch(error => {
var err = { "message": error.message, "errorCode": "1" };
res.json(err);
});
});
所以我的问题是
执行using (var dataStream = request.GetRequestStream())后
我的 post 方法被触发并且 req.body 为空,因为在触发该方法之前我没有传递任何参数..
我怎么解决这个问题?
拉莫斯之舞
相关分类