Request: Put request génère une erreur avec l'option d'en-tête

Créé le 15 juin 2016  ·  4Commentaires  ·  Source: request/request

J'ai eu une erreur à partir d'une requête PUT. Mais j'ai trouvé que cela pouvait fonctionner sans l'option d'en-tête.
La requête avec des options d'en-tête ressemble à ceci :

'use strict';
var request = require("request");

request({
  method: 'PUT',
  uri: 'http://v2.openapi.ele.me/restaurant/62028381/order_mode/?consumer_key=0170804777&sig=bc8b56be4f9d33942eb22bd66ab1f2a49eea91f4&timestamp=1465890208',
  body: {
    order_mode: 1
  },
  json: true,
  headers: {
    "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8"
  },
}, (err, response, body) => {
  console.log(body);
});

Et l'erreur est :

/Users/keller/xfxb/brownie/node_modules/request/lib/querystring.js:44
  return str.replace(/[!'()*]/g, function (c) {
             ^

TypeError: str.replace is not a function
    at Querystring.rfc3986 (/Users/keller/xfxb/brownie/node_modules/request/lib/querystring.js:44:14)
    at Request.json (/Users/keller/xfxb/brownie/node_modules/request/request.js:1201:30)
    at Request.init (/Users/keller/xfxb/brownie/node_modules/request/request.js:421:10)
    at new Request (/Users/keller/xfxb/brownie/node_modules/request/request.js:142:8)
    at request (/Users/keller/xfxb/brownie/node_modules/request/index.js:55:10)

Y a-t-il un problème avec mon option d'en-tête ou le problème vient-il du module ?

stale

Commentaire le plus utile

Essayez form au lieu de body

form: {
  order_mode: 1
},

Tous les 4 commentaires

Essayez form au lieu de body

form: {
  order_mode: 1
},

J'ai la même erreur. il essaie de string.replace sur un objet, lors de l'utilisation de Body, mais les en-têtes sont définis sur FormData. C'est donc un mélange de types de données

set ' useQuerystring ' : faux dans reqOptions :

'utiliser strictement';
var requête = require("requête");

demande({
méthode : 'PUT',
uri : 'http://v2.openapi.ele.me/restaurant/62028381/order_mode/?consumer_key=0170804777&sig=bc8b56be4f9d33942eb22bd66ab1f2a49eea91f4&timestamp=1465890208',
corps: {
mode_commande : 1
},
json : vrai,
useQuerystring : faux,
en-têtes : {
"Content-Type": "application/x-www-form-urlencoded; charset=UTF-8"
},
}, (erreur, réponse, corps) => {
console.log(corps);
});

Ce problème a été automatiquement marqué comme obsolète, car il n'a pas eu d'activité récente. Il sera fermé s'il n'y a plus d'activité. Merci pour vos contributions.

Cette page vous a été utile?
0 / 5 - 0 notes