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'
Derek Soike

77

requesthttp POST에 사용할 때 다음과 같은 방법으로 매개 변수를 추가 할 수 있습니다.

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

JSON 본문을 게시하는 경우 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 (...)) 그렇지 않으면 충돌이 발생합니다
Doctor

당신이 그것을 문자열 화하면 실제로 내 충돌이 발생합니다. 수신 서버 설정 방법에 따라 다릅니다.
Andrew

1
답변 주셔서 감사합니다. 이에 대한 문서는 어디서 찾을 수 있습니까? post 메소드를 의심했지만 Github의 문서로는이 문제를 충분히 해결할 수 없습니다.
Sky

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

json 문자열의 오류 외에도이 것이 나를 위해 속임수를 썼습니다! "form"섹션에는 전달 된 객체가 있으므로 그 안에있는 모든 것을 객체로 정의 할 수 있으며 그 준비 작업을 수행하지 않아도됩니다.
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 또는 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...');
    });
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.