org.hancel.http.HttpUtils.java Source code

Java tutorial

Introduction

Here is the source code for org.hancel.http.HttpUtils.java

Source

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 peticin 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 peticin 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 peticin 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 peticin al server");
        }
        return result;

    }
}