Android端支援HTTP和HTTPS

2021-06-26 10:55:40 字數 1905 閱讀 9727

android端的網路模組在程式開發中是至關重要的,今天我們來分享下android端如何使用http和https 技術。

是乙個基於請求與響應模式的、無狀態的、應用層的協議,常基於tcp的連線方式。android端用http協議訪問網路資源的方式有兩種:

l使用

jdk的

。包括post

和get

請求方式。

實現思路:建立乙個url物件

開啟連線(post方式需要設定引數)

利用httpurlconnection物件從網路中獲取網頁資料

得到網路返回的輸入流

讀取流並獲取返回字串

使用

apache

的httpclient

訪問網路資源。實現思路類似

jdk的

。在此就不贅述。

從字面意思看比http協議要安全。它是乙個安全通訊通道,它是基於http開發,用於在客戶計算機和伺服器之間交換資訊。它使用安全套接字層(ssl)進行資訊交換,簡單來說它是http的安全版。

當android端有使用https的需求的時候,如果繼續保持http的方式進行網路請求,就容易出現連線失敗的問題。這是因為大多數情況下,https伺服器所使用的根證書是自簽名的。如果裝置的信任證書列表中不包含此簽名機構,就會連線失敗。出現這樣的問題,一般有兩種解決方案:1一種是讓httpclient信任所有的伺服器證書,這種方法安全性則差一些,但實現相對簡單。另一種是在發起https連線之前將伺服器證書加到httpclient的信任證書列表中,這個相對來說比較複雜一些,很容易出錯;下面講解第一種的實現原理。

當例項化httpclinet物件時要繫結https連線所使用的埠號,這裡繫結了443(443是https預設的埠號,就像http的預設埠是80)。

其中httpssslsocketfactory類是自定義實現socketfactory介面的類。主要目的就是讓httpclient接受所有的伺服器證書,能夠正常的進行https資料讀取。

android端支援webview。當訪問使用ssl加密的url時(即為https協議請求),如果不經過處理,頁面顯示空白。而使用系統自帶的瀏覽器開啟時,會彈出確認證書的對話方塊。需要的處理是重寫webviewclient類的onreceivedsslerror方法,如下:

近乎團隊

公升級NGINX支援HTTP 2服務端推送

nginx從1.13.9版本開始支援http 2服務端推送,上週找時間公升級了下nginx,在部落格上試驗新的特性。公升級工作主要包括 公升級nginx 修改nginx配置 修改wordpress主題 1 配置nginx官方的yum源。建立配置檔案 etc yum.repos.d nginx.rep...

Android客戶端捕獲http請求包的方法

對於web測試,我們可以很容易的抓取到相關的http請求包,不用什麼專業軟體,甚至瀏覽器都能幫我們完成這個功能,拿到需要的http請求連線 http連線對於測試同學來說,不論做功能 效能或是安全,都是非常重要的,他過濾了前台的因素,讓測試同學直接能對後台進行互動。以上是http連線的重要性,基本等於...

Android客戶端捕獲http請求包的方法

對於web測試,我們可以很容易的抓取到相關的http請求包,不用什麼專業軟體,甚至瀏覽器都能幫我們完成這個功能,拿到需要的http請求連線 http連線對於測試同學來說,不論做功能 效能或是安全,都是非常重要的,他過濾了前台的因素,讓測試同學直接能對後台進行互動。以上是http連線的重要性,基本等於...