Java HTTP POST请求不发送任何内容

Java HTTP POST请求不发送任何内容,java,node.js,http,Java,Node.js,Http,我不熟悉java中的HTTP请求。我一直在尝试向NODE.JS服务器发送一个HTTP Post请求,参数键为:12345。但是,它不会向我的服务器发送任何内容。我试着测试我的NOEDJS服务器,看看它是否在POSTMAN中工作,它确实工作了。所以我确信这是我用java做的。我想看看我的代码会有所帮助。在下面 import java.io.*; 导入java.net.HttpURLConnection; 导入java.net.URL; 导入java.util.HashMap; 导入java.uti

我不熟悉java中的HTTP请求。我一直在尝试向NODE.JS服务器发送一个HTTP Post请求,参数键为:12345。但是,它不会向我的服务器发送任何内容。我试着测试我的NOEDJS服务器,看看它是否在POSTMAN中工作,它确实工作了。所以我确信这是我用java做的。我想看看我的代码会有所帮助。在下面

import java.io.*;
导入java.net.HttpURLConnection;
导入java.net.URL;
导入java.util.HashMap;
导入java.util.Map;
公共类连接工厂{
专用双API_版本=0;
私有字符串API=“”;
私有字符串方法=“POST”;
私有字符串用户_AGENT=“Mozilla/5.0”;
私有字符串TYPE=“application/x-www-form-urlencoded”;
私有字符串数据=”;
专用URL连接;
私有HttpURLConnection最终连接;
私有HashMap字段=新HashMap();
公共连接工厂(字符串[]端点,字符串url,双版本){
this.API_VERSION=版本;
this.API=url;
fields.put(“version”,String.valueOf(version));
对于(int i=0;i
公共类示例{
公共静态void main(字符串[]args){
双版本=0.1;
字符串url=”http://localhost:3000";
字符串[]字段={
“密钥:12345”
};
ConnectionFactory连接=新的ConnectionFactory(字段、url、版本);
setUserAgent(“Mozilla/5.0”);
字符串响应=connection.buildConnection();
System.out.println(响应);
}
}
下面是我的node.js服务器的代码

var http=require('http');
var url=require('url');
var queryString=require('queryString')
var StringDecoder=require('string_decoder')。StringDecoder;
var server=http.createServer(函数(req,res){
//解析URL
var parsedURL=url.parse(req.url,true);
//找到路
var path=parsedURL.pathname;
var trimmedPath=path.replace(/^\/+\/+$/g',);
//质询
var queryStringObject=parsedURL.query;
console.log(queryStringObject);
if(queryStringObject.key==12345){
console.log(“true”)
res.end(“真实”)
}否则{
console.log(“失败”)
res.end(“假”)
}
//var query=queryStringObject.split()
});
监听(3000,函数(){
console.log(“在端口3000上侦听”);
});

您的java客户端没有问题

问题是,您将POST请求的内容作为“application/x-www-form-urlencoded”发送,然后在nodeJS服务器中,您将其作为查询字符串读取

下面是一个使用ExpressJS的正确示例:

const express = require('express')
const app = express()

app.get('/', function (req, res) {
res.send('Hello World!')
})


var bodyParser = require('body-parser');
app.use(bodyParser.json()); // support json encoded bodies
app.use(bodyParser.urlencoded({ extended: true })); // support encoded bodies

app.post('/test', function(req, res) {
var key = req.body.key;

if (key==12345)
res.send(true );
else
 res.send(false);
});

app.listen(3000, function () {
console.log('Example app listening on port 3000!')
})