NodeJS: fetching ISO-8859-1-encoded url endpoints

I am trying to implement this (.net) example in Node.js using request and iconv-lite (its an HTTP web service that requires url requests are encoded in ISO-8859-1):

WebClient wc = new WebClient();
var encoding = Encoding.GetEncoding("iso-8859-1");
var url = new StringBuilder();
url.Append("https://url.com?");
url.Append("&param=" + HttpUtility.UrlEncode(foo, encoding));
wc.Encoding = encoding;
return wc.DownloadString(url.ToString());

The problem is with encoding the URL (doesnt work). I am trying to do the same GET request, in which the URL must be encoded as ISO-8859-1. However, by doing something like this:

var options = {
    url : iconv.encode(url, 'ISO-8859-1').toString(),
    method: 'get',
    headers : {
        'Content-Type': 'application/x-www-form-urlencoded; charset=ISO-8859-1'
    }
};

request(options, function (error, response, body) {

    if (!error && response.statusCode == 200) {
        console.log(body);
    }else {
        console.log('err: ' + error);
    }
});

It's still not sent as a ISO-8859-1 string. Any clues on how to get this to work like with the .NET example?

I think it's decoding the response, not encoding the url. Try this:

var https = require('https'),
    qs = require('querystring');

// ...

var url = 'https://url.com/?' + qs.stringify({ param: 'foo' });

https.get(url, function(res) {
  if (res.statusCode === 200) {
    var bufs = [], bufsize = 0;
    res.on('data', function(data) {
      bufs.push(data);
      bufsize += data.length;
    }).on('end', function() {
      var buffer = Buffer.concat(bufs, bufsize),
          body = iconv.decode(buffer, 'iso-8859-1');
      console.log('Body: ' + body);
    });
    return;
  } else
    console.log('Non-OK status code: ' + res.statusCode);
  res.resume();
});