Node.js发送带有base64解码字符的POST请求时,出现无效字符错误

我想用base64解码的string发送POST请求,但是我得到无效的字符错误。

我有这个块来生成base64解码的string:

var domain = "domain.com"; var decoded = Buffer.from("x3abaARV"+domain+"1cYNYtk", 'base64').toString('ascii'); 

然后我使用request模块从npm发送POST请求:

 var headers = { ip: "10.100.0.420", key: decoded, domain: domain } var options = { url: 'http://somedomain.com/foo/bar/example.json', method: 'POST', headers: headers, } request(options, (error, response, body) => { if (error) { console.log(error); } ... 

它返回:

ypeError:在Object.exports.request(http.js:31:10)的新ClientRequest(_http_client.js:86:14)处,ClientRequest.OutgoingMessage.setHeader(_http_outgoing.js:358:11)在Request.nd(/ home / kuno / code / aviokarte-web / node_modules / request / request)的Request.start(/home/kuno/code/aviokarte-web/node_modules/request/request.js:744:32) js:1435:10)at immediate(/home/kuno/code/aviokarte-web/node_modules/request/request.js:566:14)。 (timers.js:610:5)在runCallback(timers.js:637:20)处执行(/home/kuno/code/aviokarte-web/node_modules/request/request.js:580:7) _immediateCallback](timers.js:582:5)

我如何正确设置?

如果你检查decoded的值,你会发现有不可打印的字符,在HTTP头值不允许。 您需要使用某种types的二进制安全编码(例如base64或URL /“percent”编码)。