web-dev-qa-db-fra.com

comment publier des données dans node.js avec content type = 'application / x-www-form-urlencoded'

Je rencontre un problème lors de la publication de données dans node.js avec Content-type: 'application/x-www-form-urlencoded'

var loginArgs = {
    data: 'username="xyzzzzz"&"password="abc12345#"',

    //data: {
    //    'username': "xyzzzzz",
    //    'password': "abc12345#",
    //},

    headers: {
            'User-Agent': 'MYAPI',
            'Accept': 'application/json',
            'Content-Type':'application/x-www-form-urlencoded'      
    }   
};

Et la demande de publication est:

client.post("http:/url/rest/login", loginArgs, function(data, response){
console.log(loginArgs);

if (response.statusCode == 200) {
    console.log('succesfully logged in, session:', data.msg);
}

Il renvoie toujours nom d'utilisateur/mot de passe incorrect.

Dans les autres api, il est dit que l'organisme de demande devrait être:

username='provide user name in url encoded
format'&password= "provide password in url encoded format'
14
rahul

request prend en charge application/x-www-form-urlencoded et multipart/form-data téléchargements de formulaire. Pour multipart/related fait référence à l'API en plusieurs parties.

application/x-www-form-urlencoded (formulaires encodés URL)

Les formulaires codés par URL sont simples:

const request = require('request');

request.post('http:/url/rest/login', {
  form: {
    username: 'xyzzzzz',
    password: 'abc12345#'
  }
})
// or
request.post('http:/url/rest/login').form({
  username: 'xyzzzzz',
  password: 'abc12345#'
})
// or
request.post({
  url: 'http:/url/rest/login',
  form: {
    username: 'xyzzzzz',
    password: 'abc12345#'
  }
}, function (err, httpResponse, body) { /* ... */ })

Voir: https://github.com/request/request#forms

Ou, en utilisant request-promise

const rp = require('request-promise');
rp.post('http:/url/rest/login', {
  form: {
    username: 'xyzzzzz',
    password: 'abc12345#'
  }
}).then(...);

Voir: https://github.com/request/request-promise#api-in-detail

18
Eduardo Cuomo