docs: function do_args(url, opts) {
  
  	// url
  	if(is.string(url)) {
  		url = require('url').parse(url, true);
  	}
  	debug.assert(url).is('object');
  
  	// opts
  	opts = opts || {};
  	debug.assert(opts).is('object');
  
  	opts.url = url;
  	opts.body = opts.body ? opts.body : undefined;
  
  	//debug.log('opts.body = ' , opts.body);
  	debug.assert(opts.body).ignore(undefined).is('string');
  
  	url.method = opts.method || 'GET';
  	url.headers = opts.headers || {};
  
  	if(opts.body && (url.method === 'POST')) {
  		url.headers['Content-Type'] = url.headers['Content-Type'] || 'text/plain;charset=utf8';
  		url.headers['Content-Length'] = new Buffer(opts.body, 'utf8').length;
  	}
  
  	url.agent = opts.agent;
  
  	if(is.object(opts.params)) {
  		url.path += '?' + require('querystring').stringify(opts.params);
  	}
  
  	opts.protocol = (''+url.protocol).split(':').shift() || 'http';
  
  	var cookies = _cookies.get(url);
  	if(cookies && (cookies.length >= 1)) {
  		url.headers.cookie = cookies.join(';');
  	}
  
  	return opts;
  }