Network Android

import java.io.IOException;
import java.io.InputStream;
import java.net.URI;
import java.net.URISyntaxException;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
public abstract class HttpClient
{    
  /**
   * Effectue une requ?te HTTP GET et r?cup?re un T en retour
   * @param url L'url concern?e
   * @return Un T contenant la r?ponse
   * @throws IOException Si un probl?me intervient durant la requ?te
   * @throws URISyntaxException Si l'url est foireuse
   */
  public T getResponse(String url) throws IOException, URISyntaxException
  {
    DefaultHttpClient client = new DefaultHttpClient();
    InputStream data = null;
    URI uri = new URI(url);
    HttpGet method = new HttpGet(uri);
    method.setHeader("User-Agent", "Mozilla /4.0 (compatible; MSIE 6.0; Windows CE; IEMobile 7.6) Vodafone/1.0/SFR_v1615/1.56.163.8.39");
    HttpResponse response = client.execute(method);
    HttpEntity entity = response.getEntity();
    T result = null;
    if (entity != null)
    {
      try
      {
        data = entity.getContent();
        result = transformStream(data);
      }
      catch (IOException e)
      {
        throw e;
      }
      catch (RuntimeException e)
      {
        method.abort();
        throw e;
      }
      finally
      {
        if (entity != null) entity.consumeContent();
        client.getConnectionManager().shutdown();  
      }
    }
    return result;
  }
  
  protected abstract T transformStream(InputStream is) throws IOException;    
}