Network Android

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLEncoder;
import java.util.Enumeration;
import java.util.Hashtable;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import android.util.Log;
class HttpData {
  public String content;
  public Hashtable cookies = new Hashtable();
  public Hashtable headers = new Hashtable();
}
public class HttpRequest {
  /**
   * HttpGet request
   * 
   * @param sUrl
   * @return
   */
  public static HttpData get(String sUrl) throws Exception {
    HttpData ret = null;
    String str;
    StringBuffer buff = new StringBuffer();
    // try {
    URL url = new URL(sUrl);
    URLConnection con = url.openConnection();
    BufferedReader in = new BufferedReader(new
    InputStreamReader(con.getInputStream()));
    // boolean notRemoveNewLine = sUrl.contains("news");
    // if (notRemoveNewLine) {
    // while ((str = in.readLine()) != null) {
    // buff.append(str + Global.NEW_LINE_CHAR);
    // }
    // } else {
    // while ((str = in.readLine()) != null) {
    // buff.append(str);
    // }
    // }
    while ((str = in.readLine()) != null) {
      buff.append(str);
    }
    ret = new HttpData();
    ret.content = buff.toString();
    // get headers
    Map> headers = con.getHeaderFields();
    Set>> hKeys = headers.entrySet();
    for (Iterator>> i = hKeys.iterator(); i
        .hasNext();) {
      Entry> m = i.next();
      ret.headers.put(m.getKey(), m.getValue().toString());
      if (m.getKey().equals("set-cookie"))
        ret.cookies.put(m.getKey(), m.getValue().toString());
    }
    // } catch (Exception e) {
    // e.printStackTrace();
    // Log.e("HttpRequest", e.toString());
    // }
    return ret;
  }
  /**
   * HTTP post request
   * 
   * @param sUrl
   * @param ht
   * @return
   * @throws Exception
   */
  public static HttpData post(String sUrl, Hashtable ht)
      throws Exception {
    String key;
    StringBuffer data = new StringBuffer();
    Enumeration keys = ht.keys();
    while (keys.hasMoreElements()) {
      key = keys.nextElement();
      data.append(URLEncoder.encode(key, "UTF-8"));
      data.append("=");
      data.append(URLEncoder.encode(ht.get(key), "UTF-8"));
      data.append("&");
    }
    return HttpRequest.post(sUrl, data.toString());
  }
  /**
   * HTTP post request
   * 
   * @param sUrl
   * @param data
   * @return
   */
  public static HttpData post(String sUrl, String data) {
    StringBuffer ret = new StringBuffer();
    HttpData dat = new HttpData();
    String header;
    try {
      // Send data
      URL url = new URL(sUrl);
      URLConnection conn = url.openConnection();
      conn.setDoOutput(true);
      OutputStreamWriter wr = new OutputStreamWriter(
          conn.getOutputStream());
      wr.write(data);
      wr.flush();
      // Get the response
      Map> headers = conn.getHeaderFields();
      Set>> hKeys = headers.entrySet();
      for (Iterator>> i = hKeys.iterator(); i
          .hasNext();) {
        Entry> m = i.next();
        dat.headers.put(m.getKey(), m.getValue().toString());
        if (m.getKey().equals("set-cookie"))
          dat.cookies.put(m.getKey(), m.getValue().toString());
      }
      BufferedReader rd = new BufferedReader(new
      InputStreamReader(conn.getInputStream()));
      String line;
      while ((line = rd.readLine()) != null) {
        ret.append(line);
      }
      Log.e("ERROR", line);
      wr.close();
      rd.close();
    } catch (Exception e) {
      e.printStackTrace();
      Log.e("ERROR", "ERROR IN CODE:" + e.getMessage());
    }
    dat.content = ret.toString();
    return dat;
  }
  /**
   * Post request (upload files)
   * 
   * @param sUrl
   * @param files
   * @return HttpData
   */
  /*
   * public static HttpData post(String sUrl, ArrayList files) {
   * Hashtable ht = new Hashtable(); return
   * HttpRequest.post(sUrl, ht, files); }
   */
  /**
   * Post request (upload files)
   * 
   * @param sUrl
   * @param params
   *            Form data
   * @param files
   * @return
   */
  /*
   * public static HttpData post(String sUrl, Hashtable
   * params, ArrayList
   * 
   * files) { HttpData ret = new HttpData(); try { String boundary =
   * "*****************************************"; String newLine = "rn"; int
   * bytesAvailable; int bufferSize; int maxBufferSize = 4096; int bytesRead;
   * 
   * URL url = new URL(sUrl); HttpURLConnection con = (HttpURLConnection)
   * url.openConnection(); con.setDoInput(true); con.setDoOutput(true);
   * con.setUseCaches(false); con.setRequestMethod("POST");
   * con.setRequestProperty("Connection", "Keep-Alive");
   * con.setRequestProperty("Content-Type",
   * 
   * "multipart/form-data;boundary="+boundary); DataOutputStream dos = new
   * DataOutputStream(con.getOutputStream());
   * 
   * //dos.writeChars(params);
   * 
   * //upload files for (int i=0; i   * FileInputStream fis = new FileInputStream(files.get(i));
   * dos.writeBytes("--" + boundary + newLine);
   * dos.writeBytes("Content-Disposition: form-data; " +
   * "name="file_"+i+"";filename="" + files.get(i).getPath() +""" + newLine +
   * newLine); bytesAvailable = fis.available(); bufferSize =
   * Math.min(bytesAvailable, maxBufferSize); byte[] buffer = new
   * byte[bufferSize]; bytesRead = fis.read(buffer, 0, bufferSize); while
   * (bytesRead > 0) { dos.write(buffer, 0, bufferSize); bytesAvailable =
   * fis.available(); bufferSize = Math.min(bytesAvailable, maxBufferSize);
   * bytesRead = fis.read(buffer, 0, bufferSize); } dos.writeBytes(newLine);
   * dos.writeBytes("--" + boundary + "--" + newLine); fis.close(); } // Now
   * write the data
   * 
   * Enumeration keys = params.keys(); String key, val; while
   * (keys.hasMoreElements()) { key = keys.nextElement().toString(); val =
   * params.get(key); dos.writeBytes("--" + boundary + newLine);
   * dos.writeBytes("Content-Disposition: form-data;name="" + key+""" +
   * newLine + newLine + val); dos.writeBytes(newLine); dos.writeBytes("--" +
   * boundary + "--" + newLine);
   * 
   * } dos.flush();
   * 
   * BufferedReader rd = new BufferedReader( new
   * InputStreamReader(con.getInputStream())); String line; while ((line =
   * rd.readLine()) != null) { ret.content += line + "rn"; } //get headers
   * Map> headers = con.getHeaderFields();
   * Set>> hKeys = headers.entrySet(); for
   * (Iterator>> i = hKeys.iterator();
   * i.hasNext();) { Entry> m = i.next();
   * 
   * Log.w("HEADER_KEY", m.getKey() + ""); ret.headers.put(m.getKey(),
   * m.getValue().toString()); if (m.getKey().equals("set-cookie"))
   * ret.cookies.put(m.getKey(), m.getValue().toString()); } dos.close();
   * rd.close(); } catch (MalformedURLException me) {
   * 
   * } catch (IOException ie) {
   * 
   * } catch (Exception e) { Log.e("HREQ", "Exception: "+e.toString()); }
   * return ret; }
   */
}