From a04f7480142a787e22fb4e152aae566bf0c43f29 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Thu, 8 Sep 2011 14:23:44 +0400 Subject: implement login --- src/org/fox/ttrss/ApiRequest.java | 83 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 src/org/fox/ttrss/ApiRequest.java (limited to 'src/org/fox/ttrss/ApiRequest.java') diff --git a/src/org/fox/ttrss/ApiRequest.java b/src/org/fox/ttrss/ApiRequest.java new file mode 100644 index 00000000..aaac25c2 --- /dev/null +++ b/src/org/fox/ttrss/ApiRequest.java @@ -0,0 +1,83 @@ +package org.fox.ttrss; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.UnsupportedEncodingException; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; + +import org.apache.http.HttpResponse; +import org.apache.http.client.ClientProtocolException; +import org.apache.http.client.entity.UrlEncodedFormEntity; +import org.apache.http.client.methods.HttpPost; +import org.apache.http.entity.StringEntity; +import org.apache.http.impl.client.DefaultHttpClient; + +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonParser; + +import android.content.SharedPreferences; +import android.os.AsyncTask; +import android.preference.PreferenceManager; +import android.util.Log; + +public class ApiRequest extends AsyncTask, Integer, JsonElement> { + private final String TAG = this.getClass().getSimpleName(); + + protected String m_sessionId; + protected String m_apiEndpoint; + + protected ApiRequest(String sessionId, String apiEndpoint) { + super(); + m_sessionId = sessionId; + m_apiEndpoint = apiEndpoint; + } + + @Override + protected JsonElement doInBackground(HashMap... params) { + + Gson gson = new Gson(); + + String requestStr = gson.toJson(params); + + // FIXME ugly hack + requestStr = requestStr.substring(1).substring(0, requestStr.length()-2); + + Log.d(TAG, "executing API request...: " + requestStr + " " + m_apiEndpoint); + + DefaultHttpClient client = new DefaultHttpClient(); + HttpPost httpPost = new HttpPost(m_apiEndpoint + "/api/"); + + try { + httpPost.setEntity(new StringEntity(requestStr, "utf-8")); + HttpResponse execute = client.execute(httpPost); + + InputStream content = execute.getEntity().getContent(); + + BufferedReader buffer = new BufferedReader( + new InputStreamReader(content)); + + String s = ""; + String response = ""; + + while ((s = buffer.readLine()) != null) { + response += s; + } + + Log.d(TAG, "Server returned: " + response); + + JsonParser parser = new JsonParser(); + + return parser.parse(response); + + } catch (Exception e) { + e.printStackTrace(); + } + + return null; + } +} -- cgit v1.2.3-54-g00ecf