Advertisement
Guest User

Untitled

a guest
Nov 23rd, 2014
156
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.88 KB | None | 0 0
  1. package com.coursework.madsport;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.Arrays;
  5. import java.util.List;
  6.  
  7. import android.app.Activity;
  8.  
  9. import android.os.Bundle;
  10. import android.util.Log;
  11. import android.webkit.WebView;
  12.  
  13.  
  14. import org.apache.http.NameValuePair;
  15. import org.apache.http.client.ResponseHandler;
  16. import org.apache.http.client.HttpClient;
  17. import org.apache.http.client.entity.UrlEncodedFormEntity;
  18. import org.apache.http.client.methods.HttpPost;
  19. import org.apache.http.impl.client.BasicResponseHandler;
  20. import org.apache.http.impl.client.DefaultHttpClient;
  21. import org.apache.http.message.BasicNameValuePair;
  22.  
  23. public class UploadRecords extends Activity {
  24.  
  25. private WebView browser;
  26. private HttpClient client;
  27.  
  28.  
  29. //private Result[] resultArray = { new Result("Football", "2014-02-02"),
  30. //new Result("basket", "2014-03-03"),new Result("basket", "2014-03-03"),new Result("criket", "2014-03-03")};
  31.  
  32. @Override
  33. public void onCreate(Bundle icicle) {
  34. super.onCreate(icicle);
  35. setContentView(R.layout.upload_events);
  36. Bundle b = new Bundle();
  37. b = getIntent().getExtras();
  38. String sport = b.getString("name");
  39. String date = b.getString("date");
  40.  
  41.  
  42. Result[] resultArray = { new Result(sport,date)};
  43.  
  44.  
  45. final String pageURL = getString(R.string.url);
  46. UploadData uploadObject = new UploadData("mr153",
  47. new ArrayList<Result>(Arrays.asList(resultArray)));
  48.  
  49. final String jsonString = uploadObject.toJson();
  50.  
  51. browser = (WebView) findViewById(R.id.webkit);
  52. client = new DefaultHttpClient();
  53.  
  54. // do the Http request in background thread
  55. new Thread(new Runnable() {
  56. public void run() {
  57. sendJsonAndProcessReply(pageURL, jsonString);
  58. }
  59. }).start();
  60. }
  61.  
  62. /*
  63. * This method
  64. *
  65. * - makes the Get Http request and reads the response. - calls
  66. * extractTheTitle() to parse the response and extracts the contents of the
  67. * <title> element. - calls generatePage to format an HTML page - displays
  68. * the formatted page using the WebKit browser via a WebViewHTTP
  69. */
  70. private void sendJsonAndProcessReply(String pageURL, String jsonString) {
  71. Log.d("pageURL", pageURL);
  72. Log.d("jsonString", jsonString);
  73. HttpPost postMethod = new HttpPost(pageURL);
  74. try {
  75. // Add your data
  76. List<NameValuePair> nameValuePairs = new ArrayList<>(1);
  77. nameValuePairs
  78. .add(new BasicNameValuePair("jsonpayload", jsonString));
  79. postMethod.setEntity(new UrlEncodedFormEntity(nameValuePairs));
  80.  
  81. ResponseHandler<String> responseHandler = new BasicResponseHandler();
  82. String responseBody = client.execute(postMethod, responseHandler);
  83. Log.d("responseBody", responseBody);
  84.  
  85. String jsonResponseString = extractJsonFromString(responseBody);
  86.  
  87. UploadResponse uploadDataReponse = UploadResponse
  88. .constructFromJson(jsonResponseString);
  89.  
  90. // format a page for us to display showing the response
  91. final String page = generatePage(uploadDataReponse);
  92.  
  93. // update the display in UI thread
  94. browser.post(new Runnable() {
  95. @Override
  96. public void run() {
  97. // display the HTML page using the webkit browser
  98. // Note that loadDataWithBaseURL is used in preference to
  99. // loadData as it works better with more complex HTML
  100. // see
  101. // http://pivotallabs.com/users/tyler/blog/articles/1853-android-webview-loaddata-vs-loaddatawithbaseurl
  102. browser.loadDataWithBaseURL(null, page, "text/html",
  103. "UTF-8", null);
  104. }
  105. });
  106.  
  107. } catch (Throwable t) {
  108. android.util.Log.e(null, "Exception fetching data", t);
  109.  
  110. }
  111. }
  112.  
  113. /*
  114. * Extract the JSON from the message received from the server in case there
  115. * is something else in there
  116. */
  117. private String extractJsonFromString(String message) {
  118. if (message != null) {
  119. int startOfJson = message.indexOf('{');
  120. int endOfJson = message.lastIndexOf('}');
  121. return message.substring(startOfJson, endOfJson + 1);
  122. }
  123. return null;
  124.  
  125. }
  126.  
  127. /*
  128. * This method builds up a string representing an HTML page from the content
  129. * passed to it.
  130. */
  131.  
  132. private String generatePage(UploadResponse uploadDataReponse) {
  133. StringBuilder bufResult = new StringBuilder("<html><body><table border=\"1\">");
  134.  
  135. bufResult.append("<tr><th>UserID</th>"
  136. + "<th>Event Number</th>" + "<th>Sports Uploaded</th></tr>");
  137.  
  138. bufResult.append("<tr><td align=\"center\">");
  139. bufResult.append(uploadDataReponse.getUserId());
  140.  
  141. bufResult.append("</td><td align=\"center\">");
  142. bufResult.append(uploadDataReponse.getNumber());
  143.  
  144. bufResult.append("</td><td align=\"center\">");
  145. bufResult.append(uploadDataReponse.getEvents());
  146.  
  147. bufResult.append("</td></<tr>");
  148. bufResult.append("<tr><td align=\"center\" colspan=\"1\">");
  149. bufResult.append(uploadDataReponse.getMessage());
  150. bufResult.append("</td></<tr>");
  151.  
  152. bufResult.append("</table></body></html>");
  153.  
  154. return (bufResult.toString());
  155. }
  156. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement