Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.coursework.madsport;
- import java.util.ArrayList;
- import java.util.Arrays;
- import java.util.List;
- import android.app.Activity;
- import android.os.Bundle;
- import android.util.Log;
- import android.webkit.WebView;
- import org.apache.http.NameValuePair;
- import org.apache.http.client.ResponseHandler;
- import org.apache.http.client.HttpClient;
- import org.apache.http.client.entity.UrlEncodedFormEntity;
- import org.apache.http.client.methods.HttpPost;
- import org.apache.http.impl.client.BasicResponseHandler;
- import org.apache.http.impl.client.DefaultHttpClient;
- import org.apache.http.message.BasicNameValuePair;
- public class UploadRecords extends Activity {
- private WebView browser;
- private HttpClient client;
- //private Result[] resultArray = { new Result("Football", "2014-02-02"),
- //new Result("basket", "2014-03-03"),new Result("basket", "2014-03-03"),new Result("criket", "2014-03-03")};
- @Override
- public void onCreate(Bundle icicle) {
- super.onCreate(icicle);
- setContentView(R.layout.upload_events);
- Bundle b = new Bundle();
- b = getIntent().getExtras();
- String sport = b.getString("name");
- String date = b.getString("date");
- Result[] resultArray = { new Result(sport,date)};
- final String pageURL = getString(R.string.url);
- UploadData uploadObject = new UploadData("mr153",
- new ArrayList<Result>(Arrays.asList(resultArray)));
- final String jsonString = uploadObject.toJson();
- browser = (WebView) findViewById(R.id.webkit);
- client = new DefaultHttpClient();
- // do the Http request in background thread
- new Thread(new Runnable() {
- public void run() {
- sendJsonAndProcessReply(pageURL, jsonString);
- }
- }).start();
- }
- /*
- * This method
- *
- * - makes the Get Http request and reads the response. - calls
- * extractTheTitle() to parse the response and extracts the contents of the
- * <title> element. - calls generatePage to format an HTML page - displays
- * the formatted page using the WebKit browser via a WebViewHTTP
- */
- private void sendJsonAndProcessReply(String pageURL, String jsonString) {
- Log.d("pageURL", pageURL);
- Log.d("jsonString", jsonString);
- HttpPost postMethod = new HttpPost(pageURL);
- try {
- // Add your data
- List<NameValuePair> nameValuePairs = new ArrayList<>(1);
- nameValuePairs
- .add(new BasicNameValuePair("jsonpayload", jsonString));
- postMethod.setEntity(new UrlEncodedFormEntity(nameValuePairs));
- ResponseHandler<String> responseHandler = new BasicResponseHandler();
- String responseBody = client.execute(postMethod, responseHandler);
- Log.d("responseBody", responseBody);
- String jsonResponseString = extractJsonFromString(responseBody);
- UploadResponse uploadDataReponse = UploadResponse
- .constructFromJson(jsonResponseString);
- // format a page for us to display showing the response
- final String page = generatePage(uploadDataReponse);
- // update the display in UI thread
- browser.post(new Runnable() {
- @Override
- public void run() {
- // display the HTML page using the webkit browser
- // Note that loadDataWithBaseURL is used in preference to
- // loadData as it works better with more complex HTML
- // see
- // http://pivotallabs.com/users/tyler/blog/articles/1853-android-webview-loaddata-vs-loaddatawithbaseurl
- browser.loadDataWithBaseURL(null, page, "text/html",
- "UTF-8", null);
- }
- });
- } catch (Throwable t) {
- android.util.Log.e(null, "Exception fetching data", t);
- }
- }
- /*
- * Extract the JSON from the message received from the server in case there
- * is something else in there
- */
- private String extractJsonFromString(String message) {
- if (message != null) {
- int startOfJson = message.indexOf('{');
- int endOfJson = message.lastIndexOf('}');
- return message.substring(startOfJson, endOfJson + 1);
- }
- return null;
- }
- /*
- * This method builds up a string representing an HTML page from the content
- * passed to it.
- */
- private String generatePage(UploadResponse uploadDataReponse) {
- StringBuilder bufResult = new StringBuilder("<html><body><table border=\"1\">");
- bufResult.append("<tr><th>UserID</th>"
- + "<th>Event Number</th>" + "<th>Sports Uploaded</th></tr>");
- bufResult.append("<tr><td align=\"center\">");
- bufResult.append(uploadDataReponse.getUserId());
- bufResult.append("</td><td align=\"center\">");
- bufResult.append(uploadDataReponse.getNumber());
- bufResult.append("</td><td align=\"center\">");
- bufResult.append(uploadDataReponse.getEvents());
- bufResult.append("</td></<tr>");
- bufResult.append("<tr><td align=\"center\" colspan=\"1\">");
- bufResult.append(uploadDataReponse.getMessage());
- bufResult.append("</td></<tr>");
- bufResult.append("</table></body></html>");
- return (bufResult.toString());
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement