X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fde%2Fdhbwloe%2Fcampusapp%2Fnetwork%2FJsonRequestHelper.java;fp=app%2Fsrc%2Fmain%2Fjava%2Fde%2Fdhbwloe%2Fcampusapp%2Fnetwork%2FJsonRequestHelper.java;h=54e8f09353f022814c7a7be0dee07c872ccc1abf;hb=17d3a2ce93fd3ba1ec692dea601f246ef8e068b2;hp=0000000000000000000000000000000000000000;hpb=48e758721a39298a85c69ecc7267f3daf6993e78;p=DHBWCampusApp.git diff --git a/app/src/main/java/de/dhbwloe/campusapp/network/JsonRequestHelper.java b/app/src/main/java/de/dhbwloe/campusapp/network/JsonRequestHelper.java new file mode 100644 index 0000000..54e8f09 --- /dev/null +++ b/app/src/main/java/de/dhbwloe/campusapp/network/JsonRequestHelper.java @@ -0,0 +1,75 @@ +package de.dhbwloe.campusapp.network; + +import android.util.Log; + +import com.loopj.android.http.AsyncHttpClient; +import com.loopj.android.http.AsyncHttpResponseHandler; + +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; + +import java.util.List; + +import cz.msebera.android.httpclient.Header; + +/** + * Created by pk910 on 09.03.2016. + */ +public abstract class JsonRequestHelper { + + protected void requestJsonFromWeb(String url) { + AsyncHttpClient client = new AsyncHttpClient(); + + Log.i("HTTPClient", "Request: " + url); + client.get(url, new AsyncHttpResponseHandler() { + @Override + public void onStart() { + } + + @Override + public void onSuccess(int statusCode, Header[] headers, byte[] response) { + String recvStr = new String(response); + JSONObject jsonObj = null; + JSONArray jsonArr = null; + try { + jsonObj = new JSONObject(recvStr); + } catch (JSONException e) { + e.printStackTrace(); + } + try { + jsonArr = new JSONArray(recvStr); + } catch (JSONException e) { + e.printStackTrace(); + } + if(jsonObj != null) + onJsonReceived(jsonObj); + else if(jsonArr != null) + onJsonReceived(jsonArr); + else + onTextReceived(recvStr); + } + + @Override + public void onFailure(int statusCode, Header[] headers, byte[] errorResponse, Throwable e) { + String error = null; + try { + error = new String(errorResponse, "US-ASCII"); + } catch (Exception e1) { + } + Log.i("HTTPClient", " Error: " + statusCode + " - " + error); + onJsonRequestFail(statusCode, error); + } + + @Override + public void onRetry(int retryNo) { + } + }); + } + + protected abstract void onJsonReceived(JSONObject json); + protected abstract void onJsonReceived(JSONArray json); + protected abstract void onTextReceived(String response); + protected abstract void onJsonRequestFail(int statusCode, String errorMessage); + +}