Last active
August 29, 2015 14:09
-
-
Save fnk0/6e58351c510eb52440e2 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package gabilheri.com.library; | |
import android.util.Log; | |
import org.apache.http.HttpEntity; | |
import org.apache.http.HttpResponse; | |
import org.apache.http.NameValuePair; | |
import org.apache.http.client.ClientProtocolException; | |
import org.apache.http.client.entity.UrlEncodedFormEntity; | |
import org.apache.http.client.methods.HttpDelete; | |
import org.apache.http.client.methods.HttpGet; | |
import org.apache.http.client.methods.HttpPost; | |
import org.apache.http.client.methods.HttpPut; | |
import org.apache.http.client.utils.URLEncodedUtils; | |
import org.apache.http.impl.client.DefaultHttpClient; | |
import org.json.JSONException; | |
import org.json.JSONObject; | |
import java.io.BufferedReader; | |
import java.io.IOException; | |
import java.io.InputStream; | |
import java.io.InputStreamReader; | |
import java.io.UnsupportedEncodingException; | |
import java.util.ArrayList; | |
import java.util.List; | |
/** | |
* Created by <a href="mailto:marcusandreog@gmail.com">Marcus Gabilheri</a> | |
* | |
* @author Marcus Gabilheri | |
* @version 1.0 | |
* @since 11/5/14. | |
*/ | |
public class JSONParser { | |
private InputStream inputStream = null; | |
private JSONObject jObj = null; | |
private String json = ""; | |
// Constructor | |
public JSONParser() { | |
} | |
public JSONObject getJSONFromURL(String url) { | |
// Making HTTP request | |
try { | |
// Default httpClient | |
DefaultHttpClient httpClient = new DefaultHttpClient(); | |
HttpPost httpPost = new HttpPost(url); | |
HttpResponse httpResponse = httpClient.execute(httpPost); | |
HttpEntity httpEntity = httpResponse.getEntity(); | |
inputStream = httpEntity.getContent(); | |
} catch (UnsupportedEncodingException e) { | |
e.printStackTrace(); | |
} catch (ClientProtocolException e) { | |
e.printStackTrace(); | |
} catch (IOException e) { | |
e.printStackTrace(); | |
} | |
try { | |
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, "iso-8859-1"), 8); | |
StringBuilder sb = new StringBuilder(); | |
String line = null; | |
while((line = reader.readLine()) != null) { | |
sb.append(line + "\n"); | |
} | |
inputStream.close(); | |
json = sb.toString(); | |
} catch (Exception e) { | |
Log.e("Buffer Error", "Error converting result " + e.toString()); | |
} | |
// Try parse the string to a Json Object | |
try { | |
jObj = new JSONObject(json); | |
} catch (JSONException e) { | |
Log.e("JSON Parser", "Error parsing data " + e.toString()); | |
} | |
return jObj; | |
} | |
// Function get json from url | |
// by making HTTP Post or Get Method | |
public JSONObject makeHttpRequest(String url, String method, List<NameValuePair> params) { | |
if(params == null) { | |
params = new ArrayList<NameValuePair>(); | |
} | |
// Making http request | |
try { | |
DefaultHttpClient httpClient = new DefaultHttpClient(); | |
// check request method | |
if(method.equals("POST")) { | |
HttpPost httPost = new HttpPost(url); | |
httPost.setEntity(new UrlEncodedFormEntity(params)); | |
HttpResponse httpResponse = httpClient.execute(httPost); | |
HttpEntity httpEntity = httpResponse.getEntity(); | |
inputStream = httpEntity.getContent(); | |
} else if(method.equals("GET")) { | |
String paramString = URLEncodedUtils.format(params, "utf-8"); | |
url += "?" + paramString; | |
HttpGet httpGet = new HttpGet(url); | |
HttpResponse httpResponse = httpClient.execute(httpGet); | |
HttpEntity httpEntity = httpResponse.getEntity(); | |
inputStream = httpEntity.getContent(); | |
} else if(method.equals("PUT")) { | |
HttpPut httpPut = new HttpPut(url); | |
httpPut.setEntity(new UrlEncodedFormEntity(params)); | |
HttpResponse httpResponse = httpClient.execute(httpPut); | |
HttpEntity httpEntity = httpResponse.getEntity(); | |
inputStream = httpEntity.getContent(); | |
} else if(method.equals("DELETE")) { | |
HttpDelete httpDelete = new HttpDelete(url); | |
HttpResponse httpResponse = httpClient.execute(httpDelete); | |
HttpEntity httpEntity = httpResponse.getEntity(); | |
inputStream = httpEntity.getContent(); | |
} | |
} catch(UnsupportedEncodingException e) { | |
e.printStackTrace(); | |
} catch(ClientProtocolException e) { | |
e.printStackTrace(); | |
} catch (IOException e) { | |
e.printStackTrace(); | |
} | |
try { | |
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, "iso-8859-1"), 8); | |
StringBuilder sb = new StringBuilder(); | |
String line = null; | |
while((line = reader.readLine()) != null) { | |
sb.append(line + "\n"); | |
} | |
inputStream.close(); | |
json = sb.toString(); | |
} catch (Exception e) { | |
Log.e("Buffer error", "Error converting result " + e.toString()); | |
} | |
// Parse the string to a json object | |
try { | |
jObj = new JSONObject(json); | |
} catch (JSONException e) { | |
Log.e("JSON Parser", "Error parsing data " + e.toString()); | |
} | |
return jObj; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment