How do I send a drupal_http_request() with GET method?
The first method is correct; you don't use url() to pass the data. Also, application/x-www-form-urlencoded is the content type used when POSTing data.

You could also use drupal_http_build_query() to build the data to pass.

$data = array('name' =&gt; 'value', 'name1' =&gt; 'value1');

$options = array(
  'method' =&gt; 'GET',
  'data' =&gt; drupal_http_build_query($data),
  'timeout' =&gt; 15,
);

$result = drupal_http_request('http://example.com/foo', $options);