nodejs 获取post数据

nodejs  获取post数据

demo的原理:使用java向nodejs发送post请求,并携带数据,nodejs收到请求,并将数据打印出来

nodejs服务器端代码:

var http = require("http");
var url = require("url");
var querystring = require('querystring'); 


http.createServer(function(request, response) {
  //request.setEncoding('utf8');
  response.writeHead(200, {"Content-Type": "text/plain"});
  response.write("送一段数据给你!");
  request.addListener('data', function(chunk){ 
console.log('获取的post数据为:' + chunk);
var name = querystring.parse(chunk + '').name;  //chunk是一个对象 加上空字符串将其转换为字符串格式
console.log("--------------------");
console.log(name);
     })
  response.end();
}).listen(8888)


java端发送post请求代码:

public class NodejsPostData {
public static void main(String[] args) {
URL url;
HttpURLConnection con = null;
try {
url = new URL("http://localhost:8888/");
con = (HttpURLConnection)url.openConnection();
con.setRequestMethod("POST");
  // http正文内,因此需要设为true
con.setDoOutput(true);
  // Read from the connection. Default is true.
   con.setDoInput(true);
  // Post 请求不能使用缓存
      con.setUseCaches(false);
      // 进行编码
       con.setRequestProperty("Content-Type","application/x-www-form-urlencoded");
  con.connect();
  
  OutputStream out = new BufferedOutputStream(con.getOutputStream());
  String content = "你好,这是一个post请求的程序!";
  Writer writer = new OutputStreamWriter(out,"UTF-8");
  writer.write("name=javaPost"); 
  writer.flush();
  writer.close();   //注意:如果既要使用输入流读取URLConnection响应的内容,也要使用输出流发送请求参数,一定要先使用输出流,再使用输入流。
  InputStream in = con.getInputStream();   
  byte[] by = new byte[128];
  String str = "";
  int len = 0;
  while((len = in.read(by))!= -1){
  //str = str + new String(by, 0, len);  注意编码问题,否则将会打印出乱码
  str = str + new String(by, 0, len,"utf-8");
  }
  System.out.println(str);
  in.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}


执行结果:

https://img-blog.csdn.net/20130427125115633


               java端console打印结果:

https://img-blog.csdn.net/20130427125243190


参考地址:http://www.java3z.com/cwbwebhome/article/article8/81193.html


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值