Android網絡應用
一.TCP協議
| ServerSocket 服務端socket服務監聽
| Socket accept() 如果服務端接受到一個客戶端的Socket請求,該方法返回一個與客戶端Socket對應的Socket
| ServerSocket(int port) 用指定端口port創建一個ServerSocket
| ServerSocket(int port,int backlog) 增加一個用來改變連接隊列長度的參數backlog
| ServerSocket(int port,int backlog,InetAddress localAddr) 在機器存在多個IP地址的情況下,允許通過localAddr這個參數將ServerSocket綁定到指定IP
| Socket 客戶端
| Socket(InetAddress/String remoteAddress,int port) 創建連接到指定主機,指定IP的socket
| Socket(InetAddress/String remoteAddress,int port,InetAddress localAddr,int localPort) 創建連接到指定主機,指定IP的socket
| InputStream getInputStream() 返回該Socket對象對應的輸入流
| OutputStream getOutputStream() 返回該Socket對應對應的輸出流
二.URL 使用URL訪問網絡資源
| 方法
| String getFile() 獲取此URL的資源名
| String getHost() 獲取此URL的主機名
| String getPath() 獲取此URL的路徑部分
| int getPort() 獲取此URL的端口號
| String getProtocol() 獲取此URL的協議名稱
| String getQuery() 獲取此URL的查詢字符串部分
| URLConnection openConnection() 返回一個URLConnection對象,代表URL所引用的遠程對象的鏈接
| InputStream openStream() 打開此URL的鏈接並返回一個用於讀此URL資源的InputStream
| 步驟 URLConnection
| 調用openConnection()方法,創建URLConnection對象
| 設置URLConnection參數和普通請求屬性
| 如果發送get請求,使用connect方法建立和遠程資源的時間連接即可,如果是post方式,需要獲取URLConnection實例對應的輸出流來發送請求參數
| 遠程資源變爲可用,程序可以訪問遠程資源的頭字段,或通過輸入流讀取遠程資源的數據
| setAllowUserInteraction 設置該URLConnection的allowUserInteraction請求頭字段值
| setDoInput() 設置該URLConnection的doInput請求頭字段值
| setDoOutput() 設置該URLConnection的doOutput請求頭字段值
| setIfModifiedSince() 設置該設置該URLConnection的ifModifiedSince請求頭字段值
| setUseCaches() 設置該URLConnection的useCaches請求頭字段值
| setRequestProperty(String key,String value) 設置該URLConnection的key請求頭字段值爲value
| Object getContent() 獲取該URLConnection的內容
| String getHeaderField(String name) 獲取指定響應頭字段的值
| getInputStream() 返回該URLConnection對應的輸入流 用於獲取URLConnection的響應內容
| getOutputStream() 返回該URLConnection對應的輸出流,用於向URLConnection發送請求參數
| getConnectEncoding() 獲取connect-encoding響應頭字段值
| getConnectLength() 獲取connect-length響應頭字段值
| getConnectTyle() 獲取connect-length響應頭字段值
| getDate() 獲取date響應頭字段值
| getExpiration() 獲取expires響應頭字段值
| getLastModified() 獲取last-modified響應頭字段的值
三.使用HTTP訪問網絡資源
| URLConnection
| HttpURLConnection
| int getResponseCode() 獲取服務器的響應代碼
| String getResponseMessage() 獲取服務器的響應消息
| String getRequestMethod() 獲取發送請求的方法
| void setRequestMethod(String method) 設置發送請求的方法
| HttpClient
| 他是一個增強版的HttpURLConnection,用於發送Http請求,接收Http響應,但不會緩存服務器響應,不能執行Html頁面中嵌入的JavaScript代碼,也不會對頁面進行解析處理
| 使用方法
| 1 創建HttpClient對象
| 2 發送get請求,創建HttpGet對象,發送post請求,創建HttpPost對象
| 3 如需發送請求參數,調用setParams(HttpParams params)方法添加請求參數,對於HttpPost對象而言,也可調用setEntity(HttpEntity entity) 方法設置請求參數
| 4 調用execute(HttpUriRequest request) 發送請求,執行方法返回一個HttpResponse
| 5 調用HTTPResponse的getAllHeaders(),getHeaders(String name) 等方法獲取服務器響應頭.調用HttpResponse的getEntity()方法獲取HttpEntity對象,此對象包含 服務器響應內容
| 使用WebView視圖訪問頁面
| void goBack() 後退
| void goFoward() 前進
| void loadUrl(String url) 加載指定Url對應的網頁
| boolean zoomIn() 方法網頁
| boolean zoomOut() 縮小網頁
| 加載HTML代碼
| loadData(String data,String mimeType,String encoding) 可用於加載並顯示Html代碼(中文會亂碼)
| loadDataWithBaseURL(String baseUrl,String data,String mimetype,String encoding,String historyUrl)
| data 指定加載的HTML代碼
| mimeType 指定HTML的MIME類型,對於HTML可指定爲text/html
| encoding 指定HTML代碼所用的字符集
| 使用WebView中的JavaScript調用Android的方法(WebSetting 工具類)
| 調用WebSetting的setJavaScriptEnabled(true)啓用JavaScript的調用功能
| 調用WebView的addJavascriptInterface(Object object,String name) 方法將Object對象暴露給JavaScript
| 在JavaScript中通過剛纔暴露的name對象調用Android的方法
四.Web Service
| SOAP(簡單對象訪問協議)
| 必須的<Envelope.../>根元素
| 可選的<Header.../>包含SOAP消息的頭信息
| 必須的<Body../>元素,包含所有的調用和響應信息
| WSDL(Web Service 描述語言)
| WHAT部分:用於定義Web Service所提供的操作(或方法).由WSDL的<types.../>,<message.../>(交換方式)和<portType.../>元素定義(可包含<operation../>元素代表一個允許 遠程調用的操作)
| HOW部分: 用於定義如何訪問Web Service,包含數據格式詳情和必要協議.
| WHERE部分: 用於定義Web Service 位於何處,如何使用特定的網絡地址(url)指定.該部分使用<service.../>定義
| <binding../>子元素,會把綁定機制,服務訪問協議和終端地址結合在一起
| UDDI (統一描述,發現和整合協議)
| 特點: 基於Web, 分佈式
| jar:ksoap2-android-assembly-3.0.0-RC.4-jar-with-dependencies.jar
| 1 創建HttpTransportSE對象, 該對象用於調用WebService操作
| 2 創建SoapSerializationEnvelope對象
| 3 創建SoapObject對象,創建時需要傳入Web Service的命名空間,Web Service方法名
| 4 如果有參數需要傳給Web Service服務器端,調用SoapObject對象的addProperty(String name,Object value)方法設置參數
| 5 調用SoapSerializationEnvelope的setOutputSoapObject()方法或者直接對bodyOut屬性賦值,將SoapObject對象設置爲SoapSerializationEnvelope傳出SOAP消息體
| 6 調用call()方法並以SoapSerializationEnvelope作爲參數調用遠程Web Service
| 7 調用完成後,訪問SoapSerializationEnvelope對象的bodyIn屬性,該屬性返回一個SoapObject對象,該對象代表Web Service返回的消息
| ServerSocket 服務端socket服務監聽
| Socket accept() 如果服務端接受到一個客戶端的Socket請求,該方法返回一個與客戶端Socket對應的Socket
| ServerSocket(int port) 用指定端口port創建一個ServerSocket
| ServerSocket(int port,int backlog) 增加一個用來改變連接隊列長度的參數backlog
| ServerSocket(int port,int backlog,InetAddress localAddr) 在機器存在多個IP地址的情況下,允許通過localAddr這個參數將ServerSocket綁定到指定IP
| Socket 客戶端
| Socket(InetAddress/String remoteAddress,int port) 創建連接到指定主機,指定IP的socket
| Socket(InetAddress/String remoteAddress,int port,InetAddress localAddr,int localPort) 創建連接到指定主機,指定IP的socket
| InputStream getInputStream() 返回該Socket對象對應的輸入流
| OutputStream getOutputStream() 返回該Socket對應對應的輸出流
二.URL 使用URL訪問網絡資源
| 方法
| String getFile() 獲取此URL的資源名
| String getHost() 獲取此URL的主機名
| String getPath() 獲取此URL的路徑部分
| int getPort() 獲取此URL的端口號
| String getProtocol() 獲取此URL的協議名稱
| String getQuery() 獲取此URL的查詢字符串部分
| URLConnection openConnection() 返回一個URLConnection對象,代表URL所引用的遠程對象的鏈接
| InputStream openStream() 打開此URL的鏈接並返回一個用於讀此URL資源的InputStream
| 步驟 URLConnection
| 調用openConnection()方法,創建URLConnection對象
| 設置URLConnection參數和普通請求屬性
| 如果發送get請求,使用connect方法建立和遠程資源的時間連接即可,如果是post方式,需要獲取URLConnection實例對應的輸出流來發送請求參數
| 遠程資源變爲可用,程序可以訪問遠程資源的頭字段,或通過輸入流讀取遠程資源的數據
| setAllowUserInteraction 設置該URLConnection的allowUserInteraction請求頭字段值
| setDoInput() 設置該URLConnection的doInput請求頭字段值
| setDoOutput() 設置該URLConnection的doOutput請求頭字段值
| setIfModifiedSince() 設置該設置該URLConnection的ifModifiedSince請求頭字段值
| setUseCaches() 設置該URLConnection的useCaches請求頭字段值
| setRequestProperty(String key,String value) 設置該URLConnection的key請求頭字段值爲value
| Object getContent() 獲取該URLConnection的內容
| String getHeaderField(String name) 獲取指定響應頭字段的值
| getInputStream() 返回該URLConnection對應的輸入流 用於獲取URLConnection的響應內容
| getOutputStream() 返回該URLConnection對應的輸出流,用於向URLConnection發送請求參數
| getConnectEncoding() 獲取connect-encoding響應頭字段值
| getConnectLength() 獲取connect-length響應頭字段值
| getConnectTyle() 獲取connect-length響應頭字段值
| getDate() 獲取date響應頭字段值
| getExpiration() 獲取expires響應頭字段值
| getLastModified() 獲取last-modified響應頭字段的值
三.使用HTTP訪問網絡資源
| URLConnection
| HttpURLConnection
| int getResponseCode() 獲取服務器的響應代碼
| String getResponseMessage() 獲取服務器的響應消息
| String getRequestMethod() 獲取發送請求的方法
| void setRequestMethod(String method) 設置發送請求的方法
| HttpClient
| 他是一個增強版的HttpURLConnection,用於發送Http請求,接收Http響應,但不會緩存服務器響應,不能執行Html頁面中嵌入的JavaScript代碼,也不會對頁面進行解析處理
| 使用方法
| 1 創建HttpClient對象
| 2 發送get請求,創建HttpGet對象,發送post請求,創建HttpPost對象
| 3 如需發送請求參數,調用setParams(HttpParams params)方法添加請求參數,對於HttpPost對象而言,也可調用setEntity(HttpEntity entity) 方法設置請求參數
| 4 調用execute(HttpUriRequest request) 發送請求,執行方法返回一個HttpResponse
| 5 調用HTTPResponse的getAllHeaders(),getHeaders(String name) 等方法獲取服務器響應頭.調用HttpResponse的getEntity()方法獲取HttpEntity對象,此對象包含 服務器響應內容
| 使用WebView視圖訪問頁面
| void goBack() 後退
| void goFoward() 前進
| void loadUrl(String url) 加載指定Url對應的網頁
| boolean zoomIn() 方法網頁
| boolean zoomOut() 縮小網頁
| 加載HTML代碼
| loadData(String data,String mimeType,String encoding) 可用於加載並顯示Html代碼(中文會亂碼)
| loadDataWithBaseURL(String baseUrl,String data,String mimetype,String encoding,String historyUrl)
| data 指定加載的HTML代碼
| mimeType 指定HTML的MIME類型,對於HTML可指定爲text/html
| encoding 指定HTML代碼所用的字符集
| 使用WebView中的JavaScript調用Android的方法(WebSetting 工具類)
| 調用WebSetting的setJavaScriptEnabled(true)啓用JavaScript的調用功能
| 調用WebView的addJavascriptInterface(Object object,String name) 方法將Object對象暴露給JavaScript
| 在JavaScript中通過剛纔暴露的name對象調用Android的方法
四.Web Service
| SOAP(簡單對象訪問協議)
| 必須的<Envelope.../>根元素
| 可選的<Header.../>包含SOAP消息的頭信息
| 必須的<Body../>元素,包含所有的調用和響應信息
| WSDL(Web Service 描述語言)
| WHAT部分:用於定義Web Service所提供的操作(或方法).由WSDL的<types.../>,<message.../>(交換方式)和<portType.../>元素定義(可包含<operation../>元素代表一個允許 遠程調用的操作)
| HOW部分: 用於定義如何訪問Web Service,包含數據格式詳情和必要協議.
| WHERE部分: 用於定義Web Service 位於何處,如何使用特定的網絡地址(url)指定.該部分使用<service.../>定義
| <binding../>子元素,會把綁定機制,服務訪問協議和終端地址結合在一起
| UDDI (統一描述,發現和整合協議)
| 特點: 基於Web, 分佈式
| jar:ksoap2-android-assembly-3.0.0-RC.4-jar-with-dependencies.jar
| 1 創建HttpTransportSE對象, 該對象用於調用WebService操作
| 2 創建SoapSerializationEnvelope對象
| 3 創建SoapObject對象,創建時需要傳入Web Service的命名空間,Web Service方法名
| 4 如果有參數需要傳給Web Service服務器端,調用SoapObject對象的addProperty(String name,Object value)方法設置參數
| 5 調用SoapSerializationEnvelope的setOutputSoapObject()方法或者直接對bodyOut屬性賦值,將SoapObject對象設置爲SoapSerializationEnvelope傳出SOAP消息體
| 6 調用call()方法並以SoapSerializationEnvelope作爲參數調用遠程Web Service
| 7 調用完成後,訪問SoapSerializationEnvelope對象的bodyIn屬性,該屬性返回一個SoapObject對象,該對象代表Web Service返回的消息
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.