关于Node.js获取用java代码写的HTTP post请求参数的问题(已解决)
发布于 4个月前 作者 andyforever 563 次浏览 来自 问答

用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 }));

回到顶部