创建了一个将数据发布到nodejs服务器的Android应用程序。
nodejs服务器是一个运行
的简单http网络服务器var http = require('http');
module.exports = http.createServer(function (req, resp) {
console.log("Request received!");
resp.writeHead(200, {'Content-Type': 'text/plain; charset=utf-8'});
if (req.method == 'POST') {
var body = '';
req.on('data', function (data) {
body += data;
});
req.on('end', function () {
console.log("Body = " + body);
// use POST
});
}
});
客户端(Android应用)使用以下命令发送帖子请求
URL url = new URL(endpoint);
conn = (HttpURLConnection) url.openConnection();
conn.setReadTimeout(10000);
conn.setConnectTimeout(10000);
conn.setRequestMethod("POST");
conn.setRequestProperty("User-Agent", "Android");
conn.setDoInput(true);
conn.setDoOutput(true);
OutputStream os = conn.getOutputStream();
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(os, "UTF-8"));
writer.write(getString());
writer.close();
os.close();
getString()方法定义为:
JSONObject root = new JSONObject();
root.put("test", "Testing");
return root.toString();
我在服务器上收到请求,但正文是空的。
我尝试使用express与bodyParser,我得到了相同的结果。这是旧版本的快递。即使使用最新版本的快递,我也遇到了同样的问题。在这种情况下,我必须单独包含bodyParser模块并调用bodyParser()。在新旧版本中,我打电话给#34; req.body" (这也是空的)
任何想法?不确定为什么身体没有填充json字符串。