在第一篇中簡單介紹了OkHttp的get請求發(fā)送结笨,今天簡單說下post請求發(fā)送json到服務(wù)器然痊。
Android老版本網(wǎng)絡(luò)請求:
HttpUrlConnection
Apache Http Client
Android6.0版本網(wǎng)絡(luò)請求:
HttpUrlConnection
OkHttp
新版本廢棄了老的網(wǎng)絡(luò)請求整吆,那么它的優(yōu)勢是什么呢叶组?
1壳繁,支持SPDY,共享同一個Socket來處理同一個服務(wù)器的所有請求
2坟募,如果SPDY不可用缆毁,則通過連接池來減少請求延時
3番川,無縫的支持GZIP來減少數(shù)據(jù)流量
4,緩存響應(yīng)數(shù)據(jù)來減少重復(fù)的網(wǎng)絡(luò)請求
public class MainActivity extends AppCompatActivity {
public static final String TAG = "MainActivity";
public static final MediaType JSON=MediaType.parse("application/json; charset=utf-8");
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//開啟一個線程脊框,做聯(lián)網(wǎng)操作
new Thread() {
@Override
public void run() {
postJson()颁督;
}
}.start();
}
private void postJson() {
//申明給服務(wù)端傳遞一個json串
//創(chuàng)建一個OkHttpClient對象
OkHttpClient okHttpClient = new OkHttpClient();
//創(chuàng)建一個RequestBody(參數(shù)1:數(shù)據(jù)類型 參數(shù)2傳遞的json串)
RequestBody requestBody = RequestBody.create(JSON, json);
//創(chuàng)建一個請求對象
Request request = new Request.Builder()
.url("http://192.168.0.102:8080/TestProject/JsonServlet")
.post(requestBody)
.build();
//發(fā)送請求獲取響應(yīng)
try {
Response response=okHttpClient.newCall(request).execute();
//判斷請求是否成功
if(response.isSuccessful()){\
//打印服務(wù)端返回結(jié)果
Log.i(TAG,response.body().string());
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
SPDY(讀作“SPeeDY”)是Google開發(fā)的基于TCP的應(yīng)用層協(xié)議,用以最小化網(wǎng)絡(luò)延遲浇雹,提升網(wǎng)絡(luò)速度沉御,優(yōu)化用戶的網(wǎng)絡(luò)使用體驗。SPDY并不是一種用于替代HTTP的協(xié)議昭灵,而是對HTTP協(xié)議的增強吠裆。新協(xié)議的功能包括數(shù)據(jù)流的多路復(fù)用、請求優(yōu)先級以及HTTP報頭壓縮烂完。谷歌表示试疙,引入SPDY協(xié)議后,在實驗室測試中頁面加載速度比原先快64%抠蚣。
ZIP最早由Jean-loup Gailly和Mark Adler創(chuàng)建祝旷,用于UNⅨ系統(tǒng)的文件壓縮。我們在Linux中經(jīng)常會用到后綴為.gz的文件嘶窄,它們就是GZIP格式的』初耍現(xiàn)今已經(jīng)成為Internet 上使用非常普遍的一種數(shù)據(jù)壓縮格式,或者說一種文件格式护侮。
HTTP協(xié)議上的GZIP編碼是一種用來改進WEB應(yīng)用程序性能的技術(shù)敌完。大流量的WEB站點常常使用GZIP壓縮技術(shù)來讓用戶感受更快的速度。這一般是指WWW服務(wù)器中安裝的一個功能羊初,當有人來訪問這個服務(wù)器中的網(wǎng)站時滨溉,服務(wù)器中的這個功能就將網(wǎng)頁內(nèi)容壓縮后傳輸?shù)絹碓L的電腦瀏覽器中顯示出來.一般對純文本內(nèi)容可壓縮到原大小的40%.這樣傳輸就快了什湘,效果就是你點擊網(wǎng)址后會很快的顯示出來.當然這也會增加服務(wù)器的負載. 一般服務(wù)器中都安裝有這個功能模塊的。