我有以下javascript代码,可以产生发布请求。
var postUrl = "http://localhost:3100/radiance";
xhttp.open("POST", postUrl, true);
xhttp.setRequestHeader('Content-type', 'application/json');
let radFile = {"radfile":"long string"}
let solarJson = {"key1":"value1","key2":"value2"}
let latitude = 45
let longitude = 24
msgJson=JSON.stringify({'radFile':radFile,'speedSolar':solarJson,'latitude':latitude,'longitude':longitude})
xhttp.send(msgJson);
发布请求与下面的我的快速应用代码完全兼容。
var express = require('express');
// require our dependencies
var express = require('express');
var bodyParser = require('body-parser');
var cors = require('cors');
var app = express();
var port = process.env.PORT || 3100;
var corsOptions = {
credentials: false
};
// use body parser
app.use(bodyParser.urlencoded({extended: true, limit: 1024 * 1024 * 10000, parameterLimit: 1000000*1000}));
app.use(bodyParser.json({type: 'application/json', extended: false, limit: 1024 * 1024 * 10000, parameterLimit: 1000000*1000}));
// route our app
var router = require('./app/routes');
app.use('/', router);
var server
// start the server
server = app.listen(port, function() {
console.log('app started ' +port );
});
但是,我正努力在邮递员中复制以上邮寄请求以进行测试(目的)。
我认为,以下发布请求应该可以解决问题,但是当我的应用收到该发布请求时,请求的正文始终为空。为什么?似乎正文解析器并没有完成它的工作。
我在邮递员中的发帖请求中做错了什么,如何才能完全复制我的javascript发帖请求?
答案 0 :(得分:0)
您在此处执行两种不同类型的请求。您的网站代码正在发送一个JSON字符串,其中嵌入了“文件”的内容:
let radFile = {"radfile":"long string"}
let solarJson = {"key1":"value1","key2":"value2"}
let latitude = 45
let longitude = 24
msgJson=JSON.stringify({'radFile':radFile,'speedSolar':solarJson,'latitude':latitude,'longitude':longitude})
给你一个身体
{'radFile': {"radfile": "long string"}, 'speedSolar': {"key1":"value1", "key2":"value2"}, 'latitude': 45, 'longitude': 24}
但是,当您按原样使用Postman时,您要提交2个不同的部分,一个文件(或2个文件)和表单值-您可以使用postman echo网站查看您实际提交的内容,以防万一。将来有疑问: