編輯:關於Android編程
目前Android平台有3中網絡通信接口:
1、java.net.*(標准的java接口):URLConnection/HttpURLConnection類。
2、org.apache(Apache接口):HttpClient接口
3、Android.net(Android網絡接口):通過對Apache的HttpClient接口的封裝來實現的一個Http編程接口。
一、標准的java接口:
通過Http請求一般有兩種方式:get與post
get方式:get請求可以獲取靜態頁面,也可以把參數放到URL字符串之後,傳遞到服務器。
post與get的不同之處在於,post是項參數放在http請求數據中的。
標准java接口下的網絡通信需要借助於HttpURLConnection抽象類,該類繼承自URLConnection抽象類。
由於HttpURLConnection和URLConnection都是抽象類,無法實例化,其對象通過openConnection方法獲得。
創建一個HttpURLConnection連接的代碼如下:
URL url = new URL("http://www.google.com");
HttpURLConnection urlCon = (HttpURLConnection)url.openConnection();
openConnection方法只創建URLConnection或HttpURLConnection實例,但並不進行真正的連接操作,
並且每次openConnection之後都會創建一個新的實例。
如下是一些屬性設置:
connection.setDoOutput(true) //設置輸入輸出流
connection.setDoInput(true);
設置請求方式
connection.setRequestMethod("POST");
connection.setUseCaches(false)//設置post請求不能使用緩存
connection.disconnection();//釋放連接。
二、Apache接口:HttpClient接口
HttpClient接口是對java.net接口做了一層封裝,更適合Android開發聯網應用。
獲取HttpClient的方式:
HttpClient client = new DefaultHttpClient(); //DefaultHttpClient是默認的http客戶端。通它可以創建一個HTTP連接。
HttpResponse是一個Http連接響應,當執行一個HTTP請求後就會返回一個HttpResponse,可以通過他來獲得一些響應信息。
HttpResponse httpResponse = client.execute(httpRequest);
執行HttpClient時需要傳入請求方式:get、post
get:HttpGet httpRequest = new HttpGet(url);
psot:HttpPost httpRequest = new HttpPost(url);
post方式需要將請求參數保存到NameValuePair中。
if(httpResponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK){ //成功 }
Socket通信:
Socket有兩種主要的操作方式:面向連接的和無連接的。
面向連接的操作方式(使用TCP協議):就象一部電台,必須建立一個連接和一個呼叫
優點:安全可靠。
確定:傳輸效率低。
無連接的操作方式(UDP協議):就像郵件投遞,沒有保證。
優點:傳輸效率高。
確定:可靠性差。
Socket編程原理:
通過使用java.net包中提供的兩個類:Socket和ServerSocket:分別用來表示雙向連接的客戶端和服務器。
客戶端: Socket:Socket socket= newSocket(IP,port);//參數為服務器的IP和端口號。
使用Socket創建客戶端的步驟如下:
1、通過IP地址和端口實例化Socket,請求連接服務器。
2、獲取Socket上的流以進行讀寫。
3、把流包裝進BufferReader/PrintWriter的實例
4、對Socket進行讀寫
5、關閉打開的流。
服務器: ServerSocket server = new ServerSocket(port);//服務器的端口。
使用ServerSocket創建服務器步驟如下:
1、指定端口實例化一個ServerSocket
2、調用ServerSocket的accept()方法以在等待期間造成阻塞。
3、獲取位於該底層Socket的流已進行讀寫操作
4、將數據封裝成流
5、對Socket進行讀寫
6、關閉打開流。
我們學習了一些Android數據庫相關的基礎知識,和幾個頗為有用的SQLite命令,都是直接在命令行操作的。但是我們都知道,數據庫是要和程序結合在一起使用的,
菜鳥起飛記android launchmode 使用場景Activity一共有以下四種launchMode:1.standard2.singleTop3.singleTa
實現Android動態部署的過程中最重要的是從插件apk中啟動四大組件,經過前面幾篇文章的分析,現在只剩下BroadcastReceiver和ContentProvide
ContactPicker(選擇聯系人) 詳解 ContactPicker:用戶可以選擇一個聯系人. 1. 創建ContactP