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

这个模块是请求 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 没错。

378625 次浏览

编辑: 你应该检查一下 针头。它为你做了这些,并且支持多部分数据,以及更多。

我发现我少了一个头球

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

在使用 request进行 http POST 时,您可以通过以下方式添加参数:

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

我不得不张贴没有表单的键值对,我可以很容易地做到这一点,如下:

var request = require('request');


request({
url: 'http://localhost/test2.php',
method: 'POST',
json: {mes: 'heydude'}
}, function(error, response, body){
console.log(body);
});
  1. 使用 npm install request安装请求模块

  2. 代码:

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

如果要发布 json 主体,请不要使用 form参数。使用 form将使数组变成 field[0].attributefield[1].attribute等。像这样使用 body

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

我强烈推荐 Axios https://www.npmjs.com/package/axios安装它与 npm 或纱线

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...');
});

我必须从 PHP代码的 POST方法中获得数据。对我有效的是:

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