package org.hancel.http; /*This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. Created by Javier Mejia @zenyagami zenyagami@gmail.com */ import java.io.BufferedInputStream; import java.io.IOException; import java.io.InputStream; import java.io.UnsupportedEncodingException; import java.net.HttpURLConnection; import java.net.URL; import java.net.URLEncoder; import java.util.ArrayList; import java.util.List; import java.util.Scanner; import org.apache.http.NameValuePair; import org.apache.http.message.BasicNameValuePair; import org.hancel.exceptions.NoInternetException; import org.hansel.myAlert.Log.Log; import org.json.JSONException; import org.json.JSONObject; import android.os.Build; public class HttpUtils { private static String URL_BASE = "http://www.hanselapp.com/wp-3/sisweb.php?"; public static JSONObject requestHttp(String url, List<NameValuePair> params, String method) { return request(url,params,method); } public static JSONObject request(String url, List<NameValuePair> params, String method){ JSONObject response; try { response = execute(url, params, method); if(response!=null) return response; } catch (IOException e) { Log.v("Error al obtener los datos de la URL"); e.printStackTrace(); } catch (JSONException e) { e.printStackTrace(); }catch (Exception e) { e.printStackTrace(); } return null; } private static JSONObject execute(String base, List<NameValuePair> params, String method) throws IOException, JSONException { URL url; HttpURLConnection urlConnection = null; if(method.equals("GET")){ url = new URL(base+getQuery(params)); urlConnection = (HttpURLConnection) url.openConnection(); } try { InputStream in = new BufferedInputStream(urlConnection.getInputStream()); Scanner s = new Scanner(in).useDelimiter("\\A"); String parseString = s.hasNext()?s.next():""; in.close(); return new JSONObject(parseString); } finally { urlConnection.disconnect(); } } private static String getQuery(List<NameValuePair> params) throws UnsupportedEncodingException { StringBuilder result = new StringBuilder(); boolean first = true; for (NameValuePair pair : params) { if (first) first = false; else result.append("&"); result.append(URLEncoder.encode(pair.getName(), "UTF-8")); result.append("="); if(pair.getValue()!=null) result.append(URLEncoder.encode(pair.getValue(), "UTF-8")); else result.append(""); } return result.toString(); } public static JSONObject Login(String user, String password,String id_device) throws NoInternetException { ArrayList<NameValuePair> values = new ArrayList<NameValuePair>(); values.add(new BasicNameValuePair("f","login")); values.add(new BasicNameValuePair("strUsr",user)); values.add(new BasicNameValuePair("strPass",password)); values.add(new BasicNameValuePair("id_device",id_device)); JSONObject result = requestHttp(URL_BASE, values, "GET"); if(result==null) { throw new NoInternetException("Error en petici�n al server"); } return result; } public static JSONObject sendTrack(String idDevice, String androidId, String idUsuario ,String latitude ,String longitude ,String bateria) throws NoInternetException { ArrayList<NameValuePair> values = new ArrayList<NameValuePair>(); values.add(new BasicNameValuePair("f","tracking")); values.add(new BasicNameValuePair("androidId",androidId)); values.add(new BasicNameValuePair("idDevice",idDevice)); values.add(new BasicNameValuePair("idUsuario",idUsuario)); values.add(new BasicNameValuePair("latitude",latitude)); values.add(new BasicNameValuePair("longitude",longitude)); values.add(new BasicNameValuePair("bateria",bateria)); JSONObject result = requestHttp(URL_BASE, values, "GET"); if(result==null) { throw new NoInternetException("Error en petici�n al server"); } return result; } public static JSONObject sendPanic(String idDevice,String idUsuario,String latitude,String longitude,String bateria,String emailsIds ,String ongList) throws NoInternetException { ArrayList<NameValuePair> values = new ArrayList<NameValuePair>(); values.add(new BasicNameValuePair("f","panico")); values.add(new BasicNameValuePair("idDevice",idDevice)); values.add(new BasicNameValuePair("idUsuario",idUsuario)); values.add(new BasicNameValuePair("latitude",latitude)); values.add(new BasicNameValuePair("longitude",longitude)); values.add(new BasicNameValuePair("bateria",bateria)); values.add(new BasicNameValuePair("emailsIds",emailsIds)); values.add(new BasicNameValuePair("ongsIds",ongList )); JSONObject result = requestHttp(URL_BASE, values, "GET"); if(result==null) { throw new NoInternetException("Error en petici�n al server"); } return result; } public static JSONObject Register(String id_device, String usuario, String password,String email,String emailAmigo, String IMEI) throws NoInternetException { ArrayList<NameValuePair> values = new ArrayList<NameValuePair>(); values.add(new BasicNameValuePair("f","registro")); values.add(new BasicNameValuePair("idDevice",id_device)); values.add(new BasicNameValuePair("usuario",usuario)); values.add(new BasicNameValuePair("password",password)); values.add(new BasicNameValuePair("email",email)); values.add(new BasicNameValuePair("mailsAmigos",emailAmigo)); values.add(new BasicNameValuePair("imei",IMEI)); values.add(new BasicNameValuePair("verDroid", String.valueOf(Build.VERSION.SDK_INT))); JSONObject result = requestHttp(URL_BASE, values, "GET"); if(result==null) { throw new NoInternetException("Error en petici�n al server"); } return result; } }