Recibí un error de una solicitud PUT. Pero descubrí que puede funcionar sin la opción de encabezado.
La solicitud con opciones de encabezado es así:
'use strict';
var request = require("request");
request({
method: 'PUT',
uri: 'http://v2.openapi.ele.me/restaurant/62028381/order_mode/?consumer_key=0170804777&sig=bc8b56be4f9d33942eb22bd66ab1f2a49eea91f4×tamp=1465890208',
body: {
order_mode: 1
},
json: true,
headers: {
"Content-Type": "application/x-www-form-urlencoded; charset=UTF-8"
},
}, (err, response, body) => {
console.log(body);
});
Y el error es:
/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)
¿Hay algún problema con mi opción de encabezados o es el problema del módulo?
Pruebe form
en lugar de body
form: {
order_mode: 1
},
Me sale el mismo error. está tratando de string.replace en un objeto, cuando usa Body, pero los encabezados están configurados en FormData. Así que es una mezcla de tipos de datos
establecer ' useQuerystring ': falso en reqOptions:
'uso estricto';
var solicitud = require("solicitud");
solicitud({
método: 'PONER',
uri: 'http://v2.openapi.ele.me/restaurant/62028381/order_mode/?consumer_key=0170804777&sig=bc8b56be4f9d33942eb22bd66ab1f2a49eea91f4×tamp=1465890208',
cuerpo: {
modo_pedido: 1
},
json: cierto,
useQuerystring: falso,
encabezados: {
"Tipo de contenido": "aplicación/x-www-form-urlencoded; charset=UTF-8"
},
}, (err, respuesta, cuerpo) => {
consola.log(cuerpo);
});
Este problema se ha marcado automáticamente como obsoleto porque no ha tenido actividad reciente. Se cerrará si no se produce más actividad. Gracias por sus aportaciones.
Comentario más útil
Pruebe
form
en lugar debody