Node.JS पर अनुरोध मॉड्यूल के साथ POST डेटा


137

यह मॉड्यूल 'अनुरोध 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 गलत नहीं है ...


http.requestसीधे उपयोग क्यों नहीं ? मुझे लगता है कि शरीर उस तरह के मापदंडों को पूरा करने के लिए मैप नहीं करता है। कोशिश करेंurl: 'http://localhost/test2.php?mes=heydude'
Raynos

जवाबों:


200

संपादित करें: आपको सुई की जांच करनी चाहिए । यह आपके लिए ऐसा करता है और मल्टीपार्ट डेटा का समर्थन करता है, और बहुत कुछ।

मुझे लगा कि मुझे एक हेडर याद आ रहा है

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.stringifyअपने डेटा को याद रखें यदि आप भेज रहे हैं'content-type': 'application/json'
डेरेक सोइक

77

का उपयोग करते समय requestएक http पोस्ट के लिए आप मापदंडों इस तरह से जोड़ सकते हैं:

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

42

मुझे बिना फॉर्म के प्रमुख मूल्य जोड़े पोस्ट करने थे और मैं इसे नीचे की तरह आसानी से कर सकता था:

var request = require('request');

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

36

यदि आप एक जैसन बॉडी पोस्ट कर रहे हैं, तो formपैरामीटर का उपयोग न करें । का प्रयोग formमें सरणियों कर देगा field[0].attribute, field[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);
});

"jsonDataObj" को कठोर किया जाना चाहिए (JSON.stringify (...)) अन्यथा यह क्रैश हो जाता है
डॉक्टर

वास्तव में अगर आप इसे सख्त करते हैं तो मेरा क्रैश हो जाता है। यह शायद निर्भर करता है कि प्राप्त सर्वर कैसे सेट किया गया है।
एंड्रयू

1
आपके उत्तर के लिए धन्यवाद। मैं इसके लिए डॉक कहां पा सकता हूं? चूंकि मैंने पोस्ट विधि पर संदेह किया था, लेकिन गितुब में डॉक्टर इस मुद्दे को ठीक नहीं कर रहे हैं।
स्काई

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

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

जस स्ट्रिंग में त्रुटियों के अलावा, इस एक ने मेरे लिए चाल चली! ध्यान दें कि "फॉर्म" सेक्शन में एक ऑब्जेक्ट पास किया गया है, इसलिए आप बस एक वस्तु के रूप में वहां सब कुछ परिभाषित कर सकते हैं और उस प्रीप काम के साथ शुरू नहीं करते हैं
rgbflawed

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

-2

मैं अत्यधिक 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...');
    });
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.