android從java端中取資料
阿新 • • 發佈:2018-12-11
- 簡介 1.1 HttpClient是Apache Jakarta Common下的子專案,用來提供高效的、最新的、 功能豐富的支援HTTP協議的客戶端程式設計工具包,並且它支援HTTP協議最新的版本和協議。 1.2 Android已成功集成了HttpClient,這意味這開發人員可以直接在Android應用中使用 HtppClient來提交請求、接收響應
// 字符集 private static String encoding = "UTF-8"; // 伺服器地址+埠號+專案名 //每個人的埠號都不一樣,並且每次啟動埠號都會改變 private static String basePath = "http://172.20.10.9:8080/Y2Pro02"; // 子控制器的路徑 private String path; // 儲存請求中的引數 private List<NameValuePair> params = new ArrayList<NameValuePair>();; public HttpClientPost(String path) { super(); this.path = path; }
注:在API 23中,Google已經移除了移除了Apache HttpClient相關的類 , 在build.gradle中的android {}中加上useLibrary ‘org.apache.http.legacy’, 詳情見資料“” 1 建立HttpClient物件 HttpClient httpClient = new DefaultHttpClient();
2 建立HttpGet(或HttpPost)物件
HttpGet HttpGet = new HttpGet(“http://www.baidu.com”);
HttpPost httpPost = new HttpPost(“ http://www.baidu.com”);
3 新增引數(可選) setParams(HttpParams params)//HttpGet和HttpPost共有 setEntity(HttpEntity entity)//HttpPost獨有 //測試程式碼
public void onClick(View v) { switch (v.getId()) { case R.id.bt_main_add: add(); break; case R.id.bt_main_edit: edit(); break; case R.id.bt_main_del: del(); break; case R.id.bt_main_load: load(); break; case R.id.bt_main_list: list(); break; } } private void add() { Log.i("test", "add..."); HttpClientPost clientPost=new HttpClientPost("/bookAction.action"); clientPost.addParam("methodName","addBook"); clientPost.addParam("book_name","你是我的眼"); clientPost.addParam("book_category_id","4"); clientPost.addParam("book_author","新大陸"); clientPost.addParam("book_price","24.8"); clientPost.addParam("publishing","呃呃呃"); clientPost.addParam("book_desc","牡丹江阿合格"); clientPost.submit(new HttpClientPost.Callback() { @Override public void execute(String json) { Log.i("test",json); } }); } private void edit() { Log.i("test", "edit..."); HttpClientPost clientPost=new HttpClientPost("/bookAction.action"); clientPost.addParam("methodName","updateBook"); clientPost.addParam("book_name","略略略"); clientPost.addParam("book_id","13"); clientPost.addParam("book_category_id","6"); clientPost.addParam("book_author","新大陸"); clientPost.addParam("book_price","24.8"); clientPost.addParam("publishing","呃呃呃"); clientPost.addParam("book_desc","牡丹江阿合格"); clientPost.submit(new HttpClientPost.Callback() { @Override public void execute(String json) { Log.i("test",json); } }); } private void del() { Log.i("test", "del..."); HttpClientPost clientPost=new HttpClientPost("/bookAction.action"); clientPost.addParam("methodName","delBook"); clientPost.addParam("book_id","20"); clientPost.submit(new HttpClientPost.Callback() { @Override public void execute(String json) { Log.i("test",json); } }); } private void load() { Log.i("test", "load..."); HttpClientPost clientPost=new HttpClientPost("/bookAction.action"); clientPost.addParam("methodName","bookList"); clientPost.addParam("book_name","你是我的眼"); clientPost.submit(new HttpClientPost.Callback() { @Override public void execute(String json) { Log.i("test",json); ObjectMapper om=new ObjectMapper(); try { Map<String, Object> rs=om.readValue(json,Map.class); Log.i("test",rs.get("total").toString()); Log.i("test",rs.get("rows").getClass().getName()); } catch (IOException e) { e.printStackTrace(); } } }); } private void list() { Log.i("test", "list..."); HttpClientPost clientPost=new HttpClientPost("/bookAction.action"); clientPost.addParam("methodName","bookList"); clientPost.submit(new HttpClientPost.Callback() { @Override public void execute(String json) { Log.i("test",json); ObjectMapper om=new ObjectMapper(); try { Map<String, Object> rs=om.readValue(json,Map.class); Log.i("test",rs.get("total").toString()); Log.i("test",rs.get("rows").toString()); } catch (IOException e) { e.printStackTrace(); } } }); }