編輯:關於Android編程
概覽
http是現在主流應用使用的網絡請求方式, 用來交換數據和內容, 有效的使用HTTP可以使你的APP 變的更快和減少流量的使用
OkHttp 是一個很棒HTTP客戶端(GitHub主頁:https://github.com/square/okhttp):
當你的網絡出現擁擠的時候,就是OKHttp 大顯身手的時候, 它可以避免常見的網絡問題,如果你的服務是部署在不同的IP上面的,如果第一個連接失敗, OkHTtp會嘗試其他的連接. 這個對現在IPv4+IPv6 中常見的把服務冗余部署在不同的數據中心上. OkHttp 將使用現在TLS特性(SNI ALPN) 來初始化新的連接. 如果握手失敗, 將切換到SLLv3
使用OkHttp很容易, 同時支持 異步阻塞請求和回調.
如果你使用OkHttp ,你不用重寫你的代碼, okhttp-urlconnection模塊實現了 java.net.HttpURLConnection 中的API, okhttp-apache模塊實現了HttpClient中的API
GET 請求
我們從最簡單的 Http 請求開始學起,首先需要獲取一個 OkHttpClient 對象,方法如下:
OkHttpClient mHttpClient = new OkHttpClient();
OkHttpClient 用於管理所有的請求,內部支持並發,所以我們不必每次請求都創建一個 OkHttpClient 對象,這是非常耗費資源的。接下來就是創建一個 Request 對象了,如下所示:
Request request = new Request.Builder() .url("http://www.baidu.com") .build();
然後調用這個請求即可:
mOkHttpClient.newCall(request).enqueue(new Callback() { @Override public void onFailure(Call call, IOException e) { } @Override public void onResponse(Call call, Response response) throws IOException { Logger.t("123123").i(response.body().string()); } });
通過調用 newCall 方法傳入之前創建的 Request 對象,然後調用 enqueue() 方法開始異步請求,該方法需要傳入回調接口,用於響應成功和失敗的回調。
好了,就是這麼簡單,運行程序,Logcat 中打印如下數據:
沒錯,這就是百度返回的 html 代碼,我們看起來很吃力,但是浏覽器就是根據這些代碼進行解析,然後將百度首頁顯示出來。
好了,最簡單的 http 請求已經完成了,實現這個功能大概有三步:
創建 OkHttpClient 對象
創建 Request 對象
將 Request 對象添加到 OkHttpClient 中,並傳入回調函數。
POST 請求
大家都知道 http 常用的請求分為 GET 和 POST 請求,剛才我們使用的明顯是一個 GET 請求,那麼,如何發起一個 POST 請求呢?其實很簡單,在第二步中有一個 post 方法,就可以傳入請求參數。
首先,創建一個 RequestBody 對象,這裡我們用它的一個子類 FormBody 創建一個表單數據參數,如下所示:
//表單數據 FormBody.Builder builder = new FormBody.Builder(); builder.add("xwdoor","xwdoor"); RequestBody formBody = builder.build();
然後以此構建 Request 對象,如下所示:
Request request = new Request.Builder() .url("http:www.baidu.com") .post(formBody) .build();
調用 post() 方法,將創建的 RequestBody 對象傳入即可。開始請求與前面講的 GET 請求一樣。實現 POST 請求大概分四步:
將 Request 對象添加到 OkHttpClient 中,並傳入回調函數。
這裡實現兩種側滑菜單效果,第一種拖拽內容部分,菜單像是被拖出來的感覺的這種效果,第二種是拖拽內容部分,菜單在內容後面不動,感覺有一種層次感的效果,如下 packa
本文實例為大家分享了Android實現搜索功能,並且需要顯示搜索的歷史記錄,供大家參考,具體內容如下效果圖:本案例實現起來很簡單,所以可以直接拿來嵌入項目中使用,涉及到的
Android中的動畫分為視圖動畫(View Animation)、屬性動畫(Property Animation)以及Drawable動畫。從Android 3.0(A
用過新版本android 360手機助手都人都對 360中只在桌面顯示一個小小懸浮窗口羨慕不已吧? 其實實現這種功能,主要有兩步: 1.判斷當前顯示的是為桌面。這個內容我