Yo quería saber, cómo pasar la petición json en la carga, por ejemplo: {'name' : 'test', 'value' : 'test'}:

var post_data = {};

var post_options = {
  host: this._host,
  path: path,
  method: 'POST',
  headers: {
    Cookie: "session=" + session,
    'Content-Type': 'application/json',
    'Content-Length': post_data.length,
  }
};

//Set up the request
var post_req = http.request(post_options, function (res) {
  res.setEncoding('utf8');
  res.on('data', function (chunk) {
    console.log('========Response========: ' + chunk);
  });
});

//post the data
post_req.write(post_data);
post_req.end();
InformationsquelleAutor Prats | 2013-04-24

3 Comentarios

  1. 89

    Utilizar el solicitud módulo

    npm install -S request

    var request = require('request')
    
    var postData = {
      name: 'test',
      value: 'test'
    }
    
    var url = 'https://www.example.com'
    var options = {
      method: 'post',
      body: postData,
      json: true,
      url: url
    }
    request(options, function (err, res, body) {
      if (err) {
        console.error('error posting json: ', err)
        throw err
      }
      var headers = res.headers
      var statusCode = res.statusCode
      console.log('headers: ', headers)
      console.log('statusCode: ', statusCode)
      console.log('body: ', body)
    })
    • Me gustaría comprobar algo con usted aquí. Es el ‘cuerpo: postData’ correcto o debería postData ser string, como en ‘cuerpo: JSON.stringify(postData); ? thx.
    • ¿cómo afecta este cambio si quiero usar request.post(...)? La mayoría de las solicitudes de la aplicación cliente (un Electrón app) será el envío contiene basado en JSON cuerpos, con la única excepción de varias partes de los cuerpos. Yo estaba teniendo problemas con el venir para arriba con la forma correcta de uso de esta biblioteca y bodyParser ajustes en el Expreso (server side) de la aplicación. Yo uso app.use(bodyParser.json()) y app.use(bodyParser.urlencoded({ extended: true })); y error de solicitudes para analizar hasta que he cambiado extended a false. No está seguro de cómo esto es relevante para peticiones JSON, que es la causa de mi confusión.
    • pro de la solución gracias
    • Normalmente, usted tendría razón, pero la adición de json: true permite solicitar sabe que debe stringify la carga antes de enviar.
  2. 2

    probé esto y parece estar funcionando.Necesitaba basic auth así que he incluido auth,si usted no lo necesita puede desprenderse de ella.

    var value = {email:"",name:""};
    
     var options = {
            url: 'http://localhost:8080/doc/',
            auth: {
                user: username,
                password: password
            },
            method :"POST",
            json : value,
    
        };
    
        request(options, function (err, res, body) {
            if (err) {
                console.dir(err)
                return
            }
            console.dir('headers', res.headers)
            console.dir('status code', res.statusCode)
            console.dir(body)
        });

Dejar respuesta

Please enter your comment!
Please enter your name here