欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android App開發(fā)中HTTP擴(kuò)展包OkHttp的入門使用指南

 更新時(shí)間:2016年07月13日 10:51:54   投稿:goldensun  
OkHttp包為安卓開發(fā)中基于HTTP協(xié)議的網(wǎng)絡(luò)編程提供了很大便利,這里我們就來看一下Android App開發(fā)中HTTP擴(kuò)展包OkHttp的入門使用指南:

Android 開發(fā),不可避免的會(huì)用到網(wǎng)絡(luò)技術(shù),而多數(shù)情況下,我們都是使用 HTTP 協(xié)議來發(fā)送和接收網(wǎng)絡(luò)數(shù)據(jù)。Android 系統(tǒng)主要提供兩種方式來進(jìn)行 HTTP 通信,HttpURLConnection 和 HttpClient,但是從 Android 2.3 及以后版本中,Google 推薦使用 HttpURLConnection,究其原因,就是由于 HttpClient 的 API 數(shù)量過多,使得我們很難在不破壞兼容性的情況下對它進(jìn)行升級和擴(kuò)展,所以目前 Android 團(tuán)隊(duì)在提升和優(yōu)化 HttpClient 方面的工作態(tài)度并不積極。HttpURLConnection 是一種多用途、輕量極的 HTTP 客戶端,使用它來進(jìn)行 HTTP 操作可以適用于大多數(shù)的應(yīng)用程序。雖然 HttpURLConnection 的 API 提供的比較簡單,但是同時(shí)這也使得我們可以更加容易地去使用和擴(kuò)展它。

但也正是因?yàn)檫@樣,HttpURLConnection 的使用還是比較復(fù)雜的,如果不進(jìn)行適當(dāng)封裝的話,很容易就會(huì)寫出不少重復(fù)代碼,于是乎,一些Android 網(wǎng)絡(luò)通信框架也就應(yīng)運(yùn)而生,今天要講的就是 OkHttp 開源框架。

OkHttp 可以做很多事,包括上傳字符串、上傳文件、上傳流、上傳表格參數(shù)、上傳多部分的請求、響應(yīng) Json、響應(yīng)緩存等。目前主要流行 Json 數(shù)據(jù)通信,所以我們就來講講基于 Json 通信的 GET 和 POST 請求與響應(yīng)。

環(huán)境準(zhǔn)備

介紹了這么多理論知識,接下來就進(jìn)入實(shí)戰(zhàn)階段了,首先下載 OkHttp 的 jar 包,可以去 GitHub 下載最近的包。

這是最新下載地址:https://search.maven.org/remote_content?g=com.squareup.okhttp3&a=okhttp&v=LATEST
當(dāng)然,你也可以在項(xiàng)目中直接添加編譯(用于 Android Studio):compile 'com.squareup.okhttp3:okhttp:3.2.0'
OkHttp 的項(xiàng)目地址:https://github.com/square/okhttp

除此之外,還需要添加一個(gè) OkHttp 的依賴包:okio.jar,下載地址:https://search.maven.org/remote_content?g=com.squareup.okio&a=okio&v=LATEST
項(xiàng)目地址:https://github.com/square/okio
編譯地址:compile 'com.squareup.okio:okio:1.6.0'

例子

1.請求一個(gè)URL

這里例子請求一個(gè)URL,并以字符串的格式打印內(nèi)容,主要代碼:

OkHttpClient client = new OkHttpClient();

String run(String url) throws IOException {
 Request request = new Request.Builder()
   .url(url)
   .build();

 Response response = client.newCall(request).execute();
 return response.body().string();
}

2.向服務(wù)器POST請求

向服務(wù)器發(fā)送POST請求,主要代碼:

public static final MediaType JSON
  = MediaType.parse("application/json; charset=utf-8");
 
OkHttpClient client = new OkHttpClient();
 
String post(String url, String json) throws IOException {
 RequestBody body = RequestBody.create(JSON, json);
 Request request = new Request.Builder()
   .url(url)
   .post(body)
   .build();
 Response response = client.newCall(request).execute();
 return response.body().string();
}

相關(guān)文章

最新評論