old_contents: 
  var bl = require('bl')
  var utils = require('../lib/utils')
  
  
  function callback (req, options) {
    var buffer = bl()
      , encoding = options.encoding
      , callback = options.callback
  
    req.on('data', function (chunk) {
      buffer.append(chunk)
    })
  
    req.on('end', function () {
      var body
      if (encoding === 'binary') {
        // binary
        body = buffer.slice()
      }
      else {
        // string
        body = buffer.toString()
        // json
        if (options.json && utils.isJSON(req._res, body)) {
          try {
            body = JSON.parse(body)
          }
          catch (err) {}
        }
      }
      callback(null, req._res, body)
    })
  }
  
  module.exports = callback
  
new_contents: 
  var bl = require('bl')
  var utils = require('../lib/utils')
  
  
  function callback (req, options) {
    var buffer = bl()
      , encoding = options.encoding
      , callback = options.callback
  
    var _res
    req.on('response', function (res) {
      _res = res
    })
  
    req.on('data', function (chunk) {
      buffer.append(chunk)
    })
  
    req.on('end', function () {
      var body
      if (encoding === 'binary') {
        // binary
        body = buffer.slice()
      }
      else {
        // string
        body = buffer.toString()
        // json
        if (utils.isJSON(_res, body)) {
          try {
            body = JSON.parse(body)
          }
          catch (err) {}
        }
      }
      callback(null, _res, body)
    })
  }
  
  module.exports = callback
  
subject: Fix - return the original response object in callback