Node.JS'de istek modülü bulunan POST verileri


137

Bu modül 'istek https://github.com/mikeal/request

Sanırım her adımı takip ediyorum ama bir argümanı kaçırıyorum ..

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

diğer tarafta bende var

echo $_POST['mes'];

Ve php yanlış olmadığını biliyorum ...


Neden http.requestdoğrudan kullanmıyorsunuz ? Vücudun böyle sorgulama parametrelerine eşlemediğini hissediyorum. Deneyinurl: 'http://localhost/test2.php?mes=heydude'
Raynos

Yanıtlar:


200

EDIT: İğne kontrol etmelisiniz . Bunu sizin için yapar ve çok parçalı verileri ve çok daha fazlasını destekler.

Bir başlık eksik olduğumu anladım

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

6
JSON.stringifyEğer gönderiyorsanız verilerinizi hatırlayın'content-type': 'application/json'
Derek Soike

78

Bir requesthttp POST için kullanırken şu şekilde parametreler ekleyebilirsiniz:

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

42

Anahtar değer çiftlerini form olmadan göndermek zorunda kaldım ve aşağıdaki gibi kolayca yapabilirim:

var request = require('request');

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

37

Bir json gövdesi gönderiyorsanız, formparametreyi kullanmayın . Kullanılması formhalinde diziler yapacak field[0].attribute, field[1].attributevb yerine kullanmak bodyşöyle.

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

"jsonDataObj" stringize edilmelidir (JSON.stringify (...)) aksi takdirde çöküyor
Doktor

Aslında benim dize yaparsanız benim çöküyor. Muhtemelen alıcı sunucunun kurulumuna bağlıdır.
Andrew

1
Cevabınız için teşekkürler. Bunun için dokümanı nerede bulabilirim? Ben post yöntem şüphe beri, ama Github doktor bu sorunu gidermek için yeterli değil.
Gökyüzü

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

11
  1. İstek modülünü kullanarak npm install request

  2. Kodda:

    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 dizesindeki hataların yanı sıra, bu benim için hile yaptı! Eğer sadece bir obje ile orada başlamak üzere her şeyi tanımlamak ve bu hazırlık çalışmaları yapamadık bu yüzden Not "form" bölümünde, kendisine geçirilen bir nesne olduğunu
rgbflawed

0

Ben bir kod POSTyönteminden veri almak zorunda PHP. Benim için işe yarayan şuydu:

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

-2

Eksenleri https://www.npmjs.com/package/axios npm veya iplik ile kurmanızı şiddetle tavsiye ederim

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...');
    });
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.