Reputation: 1159
I am sending a json object to my node server in java. I want to display the value in server console. On server console i am getting undefined. How to get the JSON object and parse it in nodejs using express.
Java Code
try
{
HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost("http://example.com:3000/");
JSONObject msg = new JSONObject(); Log.e("data",code);
msg.put("data", code);
HttpEntity entity = new StringEntity(msg.toString());
BufferedReader reader = new BufferedReader(new
InputStreamReader(client.execute(post).getEntity().getContent()));
String response = reader.readLine();
Log.e("response", response);
}
catch(Exception e)
{ Log.e("",e.toString());
}
Node Server
var express = require("express");
var http=require("http");
var app = express();
app.use(express.bodyParser());
app.post("/", function(request, response)
{
response.send(JSON.stringify({success: true}));
var token = request.body.data;
console.log(token);
});
app.listen(3000);
Upvotes: 0
Views: 1765
Reputation: 1039
You forgot to attach entity to your post request.
try
{
HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost("http://example.com:3000/");
JSONObject msg = new JSONObject(); Log.e("data",code);
msg.put("data", code);
// modified code below
HttpEntity entity = new StringEntity(msg.toString(), ContentType.create("application/json"));
post.setEntity(entity);
BufferedReader reader = new BufferedReader(new
InputStreamReader(client.execute(post).getEntity().getContent()));
String response = reader.readLine();
Log.e("response", response);
}
catch(Exception e)
{ Log.e("",e.toString());
}
Upvotes: 1
Reputation: 3038
Have you tried using:
var bodyParser = require('body-parser');
app.use(bodyParser.json());
This requires you to install the body-parser
package:
$ npm install body-parser
Upvotes: 1