title: Node.js HTTP - TypeError: The header content contains invalid characters
body: <pre><code>const http = require('http');
  
  const req = http.request({
    method: 'POST',
    hostname: 'cloudsso‐test.myco.com',
    port: 80,
    path: '/as/token.oauth2',
    headers: {
      'Content-Type': 'application/json',
    },
    agent: false  // create a new agent just for this one request
  
  }, function (res) {
  
    res.on('headers', function (h) {
      console.log('headers =&gt; ', h);
    });
  
    let data = '';
  
    res.on('data', function (d) {
      data += d;
    });
  
    res.once('end', function () {
      console.log('data =&gt; ', data);
    });
  
  });
  
  req.write(JSON.stringify({
    client_id: 'xxx',
    client_secret: 'secret',
    grant_type: 'refresh_token',
  }));
  
  req.end();
  </code></pre>
  
  <p>I run this code, and I get the following error:</p>
  
  <pre><code>_http_outgoing.js:358
      throw new TypeError('The header content contains invalid characters');
      ^
  
  TypeError: The header content contains invalid characters
      at ClientRequest.OutgoingMessage.setHeader (_http_outgoing.js:358:11)
      at new ClientRequest (_http_client.js:105:12)
      at Object.exports.request (http.js:31:10)
      at Object.&lt;anonymous&gt; (/Users/alexamil/WebstormProjects/cisco/cdt-now/test/refresh-token.js:9:18)
      at Module._compile (module.js:570:32)
      at Object.Module._extensions..js (module.js:579:10)
      at Module.load (module.js:487:32)
      at tryModuleLoad (module.js:446:12)
      at Function.Module._load (module.js:438:3)
      at Module.runMain (module.js:604:10)
  </code></pre>
  
  <p>Cannot figure out where this error is coming from. I hear it's for security reasons in newer versions of Node but cannot figure out how to get around it.</p>