編輯:Android編程入門
okhttp 是一個 Java 的 HTTP+SPDY 客戶端開發包,同時也支持 Android。需要Android 2.3以上。
返回執行結果
private String get(String url) { OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url(url) .build(); Response response = null; try { response = client.newCall(request).execute(); return response.body().string(); } catch (IOException e) { e.printStackTrace(); } return null; }
POST需要使用RequestBody對象,之後再構建Request對象時調用post函數將其傳入即可
private String post(String url) { OkHttpClient client = new OkHttpClient(); RequestBody formBody = new FormEncodingBuilder() .add("user", "Jurassic Park") .add("pass", "asasa") .add("time", "12132") .build(); Request request = new Request.Builder() .url(url) .post(formBody) .build(); Response response = null; try { response = client.newCall(request).execute(); return response.body().string(); } catch (IOException e) { e.printStackTrace(); } return null; }
此外,post的使用方法還支持文件等操作,具體使用方法有興趣的可以自行查閱
okHttp還自帶了對Gson的支持
private Person gson(String url){ OkHttpClient client = new OkHttpClient(); Gson gson = new Gson(); Request request = new Request.Builder() .url(url) .build(); Response response = null; try { response = client.newCall(request).execute(); Person person = gson.fromJson(response.body().charStream(), Person.class); return person; } catch (IOException e) { e.printStackTrace(); } return null; }
以上的兩個例子必須在子線程中完成,同時okHttp還提供了異步的方法調用,通過使用回調來進行異步調用,然後okHttp的回調依然不在主線程中,因此該回調中不能操作UI
private void getAsync(String url) { OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url(url) .build(); Response response = null; client.newCall(request).enqueue(new Callback() { @Override public void onFailure(Request request, IOException e) { } @Override public void onResponse(Response response) throws IOException { String result = response.body().string(); Toast.makeText(getApplicationContext(),result,Toast.LENGTH_SHORT).show(); //不能操作ui,回調依然在子線程 Log.d("TAG", result); } }); }
http://www.open-open.com/lib/view/open1435381866122.html
五種交互方式,分別是:通過廣播交互、通過共享文件交互、通過Messenger(信使)交互、通過自定義接口交互、通過AIDL交互。(可能更多)Service與Thread的
Android其本質就是在標准的Linux系統上增加了Java虛擬機Dalvik,並在Dalvik虛擬機上搭建了一個JAVA的application framework,
1,傳統的手機狀態欄是呈現出黑色或者白色條狀的,有的和手機主界面有很明顯的區別。這樣就在一定程度上犧牲了視覺寬度,界面面積變小。看一下QQ的應用 2,實現起來也
這周作業,要做一個類似QQ的左滑刪除效果的ListView,因為不想給每個item都放一個按鈕,所以決定用PopupWindow,這裡記錄一下先放一下效果圖:先說明一下這