Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android網絡編程 HttpClient Socket

Android網絡編程 HttpClient Socket

編輯:關於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、關閉打開流。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved