【发布时间】:2017-07-26 17:52:52
【问题描述】:
我正在使用名为“createPdf”的控制器将发布请求从 .NET 应用程序发送到节点 REST api
我用来发送 post 请求的 .NET 代码似乎工作正常,我使用 SerializeObject 创建一个 json 对象,然后使用 UrlEncode 对 json 进行编码,然后在 post 请求中发送它。
Dim postjson As String = JsonConvert.SerializeObject(article)
Dim request As WebRequest = WebRequest.Create("url")
request.Method = "POST"
Dim postData As String = WebUtility.UrlEncode(postjson)
Dim byteArray As Byte() = Encoding.UTF8.GetBytes(postData)
request.ContentType = "application/x-www-form-urlencoded"
//go off and send the post request
这似乎产生了这种格式的有效 json -
{
"source": "le sauce",
"subTopic": "le subtopic",
"Title": "le title",
"Body": "le body",
"refs": "le refs",
"lastUpdated": "19/12/2016 11:23:56"
}
但是当我发送 json 并尝试在我的节点控制器中使用以下代码解析 json 时,它似乎在 json 中添加了额外的括号和冒号。
节点控制器
var express = require('express');
var router = express.Router();
var bodyParser = require('body-parser');
var fs = require("fs");
var wkhtmltopdf = require('wkhtmltopdf');
router.use(bodyParser.urlencoded({ extended: true }));
router.post('/', function(req, res) {
console.log(req.body);
res.status(200).send('lol');
});
module.exports = router;
这是从 console.log(req.body) 输出的无效 json
{ '{
"source”:”le sauce“,
”subTopic”:”le subtopic“,
”Title”:”le title“,
”Body”:”le body“,
”refs”:”le refs“,
”lastUpdated":"19/12/2016 11:23:56"
}': '' }
由于某种原因,额外的括号、冒号、引号等已在某些时候添加到 json 中并使 json 无效,我很确定它不会发生在 .NET 端,并且必须在 Node 尝试处理时发生发布请求,但我不知道在哪里。
关于如何解决这个问题的任何想法?
【问题讨论】: