关于Node.js获取用java代码写的HTTP post请求参数的问题(已解决)
用Node.js做了一个接口服务器,但是通过以下方式POST过来的参数获取不到,请问该如何获取???
java 代码调用方式如下:
/*建立HTTPost对象*/
HttpPost httpRequest = new HttpPost(uriAPI);
/*
* NameValuePair实现请求参数的封装
*/
List <NameValuePair> params = new ArrayList <NameValuePair>();
params.add(new BasicNameValuePair("u", "沈大海"));
params.add(new BasicNameValuePair("p", "123"));
try
{
/* 添加请求参数到请求对象*/
httpRequest.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8));
/*发送请求并等待响应*/
HttpResponse httpResponse = new DefaultHttpClient().execute(httpRequest);
/*若状态码为200 ok*/
if(httpResponse.getStatusLine().getStatusCode() == 200)
{
/*读返回数据*/
String strResult = EntityUtils.toString(httpResponse.getEntity());
mTextView1.setText(strResult);
}
else
{
mTextView1.setText("Error Response: "+httpResponse.getStatusLine().toString());
}
}
catch (ClientProtocolException e)
{
mTextView1.setText(e.getMessage().toString());
e.printStackTrace();
}
catch (IOException e)
{
mTextView1.setText(e.getMessage().toString());
e.printStackTrace();
}
catch (Exception e)
{
mTextView1.setText(e.getMessage().toString());
e.printStackTrace();
}
6 回复
node部分的代码呢
@chemdemo nodejs就是用的express框架,接收request,返回response。
现在的问题是怎么在request里取出java里的entity对象???
求解答
url encode的body就用querystring解析。。 var body = ‘’; req.on(‘data’, function(data) {body += data}); req.on(‘end’, function() { require(‘querystring’).parse(body); });
@waksana 是JAVA调用Node.js的服务,Node.js使用express框架,用了body-parse插件,但现在问题是req.body和req.query里都没有任何值。
问题解决了,加了如下:
app.use(bodyParser.urlencoded({ extended: true }));