Javascript Node.js使用base64解码字符发送POST请求时,出现无效字符错误

Javascript Node.js使用base64解码字符发送POST请求时,出现无效字符错误,javascript,node.js,http,post,request,Javascript,Node.js,Http,Post,Request,我试图发送带有base64解码字符串的POST请求,但收到无效字符错误 我使用此块生成base64解码字符串: var domain = "domain.com"; var decoded = Buffer.from("x3abaARV"+domain+"1cYNYtk", 'base64').toString('ascii'); 然后我使用npm的request模块发送POST请求: var headers = { ip: "10.100.0.420", key: decod

我试图发送带有base64解码字符串的POST请求,但收到无效字符错误

我使用此块生成base64解码字符串:

var domain = "domain.com";
var decoded = Buffer.from("x3abaARV"+domain+"1cYNYtk", 'base64').toString('ascii');
然后我使用npm的
request
模块发送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:标题内容包含无效字符 在ClientRequest.OutgoingMessage.setHeader(_http_outgoing.js:358:11) 在新的客户端请求中(_http_client.js:86:14) at Object.exports.request(http.js:31:10) at Request.start(/home/kuno/code/aviokarte web/node_modules/Request/Request.js:744:32) 在Request.end(/home/kuno/code/aviokarte web/node_modules/Request/Request.js:1435:10) 最后(/home/kuno/code/aviokarte web/node_modules/request/request.js:566:14) 马上。(/home/kuno/code/aviokarte web/node_modules/request/request.js:580:7) 运行回调时(timers.js:637:20) 在tryOnImmediate(timers.js:610:5) 在processImmediate[as_immediateCallback](timers.js:582:5)


如何正确设置此设置?

如果检查解码的
的值,您会发现存在HTTP头值中不允许的不可打印字符。对于此类数据,您需要使用某种二进制安全编码(例如base64或URL/“百分比”编码)