POST上请求正文为空

时间:2014-04-29 01:48:28

标签: java android node.js

创建了一个将数据发布到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字符串。

0 个答案:

没有答案