</pre>首先,我們都知道現在Android網絡編程只需要利用AfinalHTTP框架很簡單的就可以實現。但是我還是想把Android原生的網絡編程總結一下,畢竟萬變不離其宗。</h3><h3>聲明:本人初學,只是寫出了知其然卻沒有知其所以然(即本人也不是太瞭解具體的實現原理,只是會用。大神們可以繞了。。)</h3><h3>一,前提:注意對網絡的訪問不可以在主線程中(耗時,以免阻塞)可以利用AsyncTask,即異步處理機制。亦或Handler+Thread機制進行線程之間的通信。</h3><h3><span style="font-size:12px">二,其實也可以利嚴苛模式(只需要幾句簡單的代碼),就可以在UI線程進行網絡的訪問了,不過不推薦這種。</span></h3><h3>好了,進入主題。</h3><h3>Android中的網絡編程,我把它分爲兩類,一類是Scoket編程,一類HTTP編程。Scoket編程我是自學,在此不多講。說一下HTTP編程</h3><h3>HTTP是超文本傳輸協議的縮寫,用來傳輸超文本數據。Android提供了HttpURLConnection和HttpClient兩個接口開發訪問程序的接口。</h3><h3><span style="color:#ff0000">1:這種方式通過URL</span></h3><h3><span style="color:#ff0000">HttpURLConnection繼承URLConnection類,兩個都是抽象類,無法背直接實例化。通過URL中的openConnection方法獲得實例</span></h3><div><pre name="code" class="html" style="font-size: 14px; font-weight: bold;">1)創建一個URL對象
URL url = new URL(http://www.baidu.com); //URL可以爲一個Servlet地址。
2)利用HttpURLConnection對象從網絡中獲取網頁數據
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
3)設置連接超時
conn.setConnectTimeout(6*1000);
4)對響應碼進行判斷
if (conn.getResponseCode() != 200) //從Internet獲取網頁,發送請求,將網頁以流的形式讀回來
throw new RuntimeException("請求url失敗");
5)得到網絡返回的輸入流
InputStream is = conn.getInputStream();
6)把輸入流轉化爲字節數組
byte data[]=take(is) //我寫了一個名字叫take方法,用來把流轉化爲數組,很簡單,略 有空我會來完善的
7)吧數組轉化爲字符串
String b=new String(data);
此時,b就是服務器端給你傳送的東西。已經完畢,你如果想要傳送對象信息,可以利用Gson解析。