在Node.JS上使用请求模块POST数据

时间:2011-06-21 22:17:55

标签: node.js request

此模块为'request https://github.com/mikeal/request

我想我正在关注每一步,但我错过了一个争论......

var request = require('request');
request.post({
        url: 'http://localhost/test2.php',
         body: "mes=heydude"
         }, function(error, response, body){
            console.log(body);
    });

在另一端我有

echo $_POST['mes'];

我知道php没有错......

8 个答案:

答案 0 :(得分:171)

编辑:您应该查看Needle。它为您完成此任务并支持多部分数据等等。

我发现我错过了标题

var request = require('request');
request.post({
  headers: {'content-type' : 'application/x-www-form-urlencoded'},
  url:     'http://localhost/test2.php',
  body:    "mes=heydude"
}, function(error, response, body){
  console.log(body);
});

答案 1 :(得分:73)

request用于http POST时,您可以通过以下方式添加参数:

var request = require('request');
request.post({
  url:     'http://localhost/test2.php',
  form:    { mes: "heydude" }
}, function(error, response, body){
  console.log(body);
});

答案 2 :(得分:33)

如果您要发布json正文,请不要使用form参数。使用field[0].attribute会将数组转换为field[1].attributebody等,而是使用var jsonDataObj = {'mes': 'hey dude', 'yo': ['im here', 'and here']}; request.post({ url: 'https://api.site.com', body: jsonDataObj, json: true }, function(error, response, body){ console.log(body); });

TransDateTime

答案 3 :(得分:29)

我必须在没有表格的情况下发布键值对,我可以像下面那样轻松地完成:

var request = require('request');

request({
  url: 'http://localhost/test2.php',
  method: 'POST',
  json: {mes: 'heydude'}
}, function(error, response, body){
  console.log(body);
});

答案 4 :(得分:16)

var request = require('request');
request.post('http://localhost/test2.php', 
    {form:{ mes: "heydude" }}, 
    function(error, response, body){
        console.log(body);
});

答案 5 :(得分:9)

  1. 使用npm install request

  2. 安装请求模块
  3. 在代码中:

    var request = require('request');
    var data = '{ "request" : "msg", "data:" {"key1":' + Var1 + ', "key2":' + Var2 + '}}';
    var json_obj = JSON.parse(data);
    request.post({
        headers: {'content-type': 'application/json'},
        url: 'http://localhost/PhpPage.php',
        form: json_obj
    }, function(error, response, body){
      console.log(body)
    });
    

答案 6 :(得分:0)

我强烈建议axios https://www.npmjs.com/package/axios与npm或yarn一起安装

const axios = require('axios');

axios.get('http://your_server/your_script.php')
    .then( response => {
    console.log('Respuesta', response.data);
    })
    .catch( response => {
        console.log('Error', response);
    })
    .finally( () => {
        console.log('Finalmente...');
    });

答案 7 :(得分:0)

我必须从POST代码的PHP方法获取数据。对我有用的是:

const querystring = require('querystring');
const request = require('request');

const link = 'http://your-website-link.com/sample.php';
let params = { 'A': 'a', 'B': 'b' };

params = querystring.stringify(params); // changing into querystring eg 'A=a&B=b'

request.post({
  headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, // important to interect with PHP
  url: link,
  body: params,
}, function(error, response, body){
  console.log(body);
});