Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android系統教程 >> Android開發教程 >> android網絡應用開發詳解

android網絡應用開發詳解

編輯:Android開發教程

Android網絡應用開發,主要有兩種方式,一種是socket(是對tcp/udp協議的封裝),另外一種就是使用Http協議,Android中主要提供了兩種方式,HttpURLConnection和Apache HttpClient。下面對Android網絡應用開發進行具體的闡述。

一、基於socket的網絡通信

socket是為了網絡服務提供的一種機制。通信的兩端都是socket。

網絡通信其實就是socket間的通信。

數據在兩個socket間進行io傳輸。

1、基於udp的socket編程步驟

定義碼頭
即:定義一個DatagramSocket對象ds

定義可以用來接收或者發送數據的集裝箱
即:定義DatagramPacket對象dp

在碼頭上用集裝箱接受對象發送過來的數據(ds.receive(dp))

關閉碼頭(ds.close())

2、基於tcp的socket編程步驟

二、基於http協議的網絡通信

1、HttpURLConnection

JDK 的 java.net 包中已經提供了訪問 HTTP 協議的基本功能:HttpURLConnection。HttpURLConnection是java的標准類,HttpURLConnection繼承自URLConnection,可用於向指定網站發送GET請求、POST請求。

下面是一個使用HttpURLConnection類的get請求訪問網絡的工具類:

 path是url字符串
     * InputStream
     */
      InputStream (String path) {
        URL url = ;
         {
            url =  URL(path);
            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
            
            conn.setRequestMethod();
            
            conn.setConnectTimeout();
            
            conn.setDoInput();
            
             (conn.getResponseCode() == ) {
                
                InputStream in = conn.getInputStream();
                 in;
            }
        }  (MalformedURLException e) {
            
            e.printStackTrace();
        }  (IOException e) {
            
            e.printStackTrace();
        }
         ;
    }

2、Apache HttpClient

HTTP 協議可能是現在 Internet 上使用得最多、最重要的協議了,越來越多的 Java 應用程序需要直接通過 HTTP 協議來訪問網絡資源。雖然在 JDK 的 java net包中已經提供了訪問 HTTP 協議的基本功能,但是對於大部分應用程序來說,JDK 庫本身提供的功能還不夠豐富和靈活。HttpClient 是 Apache Jakarta Common 下的子項目,用來提供高效的、最新的、功能豐富的支持 HTTP 協議的客戶端編程工具包,並且它支持 HTTP 協議最新的版本和建議。

httpClient就是一個增強版的HttpURLConnection,HttpURLConnection可以做的事情HttpClient全部可以做;HttpURLConnection沒有提供的有些功能,HttpClient也提供了,但它只是關注於如何發送請求、接收響應,以及管理HTTP連接。

下面是使用httpClient get方式訪問網絡的工具類:

     stream
     *
     */
      [] (InputStream stream)  IOException{
        [] ret = ;
        ByteArrayOutputStream bout =  ByteArrayOutputStream();
        [] buf =  [];
         len;
         () {
            len = stream.read(buf);
             (len == -) {
                ;
            }
            bout.write(buf, , len);
        }
        
        buf = ;
        ret = bout.toByteArray();
        bout.close();
         ret;
    }

     url 網址
     *
     */
      [] (String url) {
        [] ret = ;
        HttpGet request =  HttpGet(url);
        HttpClient client =  DefaultHttpClient();
         {
            HttpResponse response = client.execute(request);
            StatusLine statusLine = response.getStatusLine();
             statusCode = statusLine.getStatusCode();
             (statusCode == ) {
                HttpEntity entity = response.getEntity();
                InputStream stream = entity.getContent();
                
                ret = readStream(stream);
                stream.close();
            }
        }  (IOException e) {
            e.printStackTrace();
        }
         ret;
    }
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved