Android P 網(wǎng)絡(luò)請求相關(guān)總結(jié)

這上半年幾家手機(jī)廠商可以堪稱神仙打架茉稠,小米9,iqoo卿吐,華為旁舰,oppo,三星等等都首發(fā)Android P系統(tǒng)但两。咱也是幾經(jīng)考慮終于換上了新手機(jī)鬓梅,也體驗(yàn)一下這Android9.0(原來是Android6的一臺(tái)nubia)。然后迫不及待跑了一下自己寫的幾個(gè)app谨湘,這一跑然后就出問題了绽快。

Android 9 wifi傳輸

在Android9上面連接到Pentax相機(jī)的wifi時(shí)候,但是無法傳輸文件紧阔,無法獲取單反sd卡的縮略圖等坊罢,會(huì)報(bào)如下錯(cuò):

No Network Security Config specified, using platform default

后來通過查閱官網(wǎng),發(fā)現(xiàn)Google在Android P上面禁止了明文http傳輸擅耽,也就是默認(rèn)的是使用https而不是http活孩。而且官方也是給出了解決方案」猿穑可以參考官方詳情憾儒,我在這里簡單總結(jié)一下

  1. 添加安全配置文件
    首先在res/xml文件夾下創(chuàng)建文件network_security_config.xml文件,然后添加可以信任的域名或者ip询兴。
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <domain-config>
        <domain includeSubdomains="true">example.com</domain>
    </domain-config>
</network-security-config>

或者添加<base-config cleartextTrafficPermitted = "true" />默認(rèn)可以使用明文傳輸。之后在AndroidMainfest.xml中application下添加下面屬性

android:networkSecurityConfig="@xml/network_security_config"
  1. 降低api版本起趾,在27或者以下都可以使用明文http傳輸诗舰。但是作為開發(fā)者這樣是沒有太大意義的。

訪問自己搭建的后臺(tái)

另一個(gè)項(xiàng)目是通過Android訪問自己搭建的web服務(wù)器训裆。同樣會(huì)出現(xiàn)報(bào)錯(cuò)眶根,通過上面的兩種方法是可以解決問題的。這里還有第三種方法边琉,那就是手動(dòng)添加ssl證書

  1. spring boot配置ssl證書實(shí)現(xiàn)https訪問
    可以使用java自帶的證書生成工具來實(shí)現(xiàn)属百,首先打開cmd終端,輸入命令來產(chǎn)生ssl證書
keytool -list -keystore server.p12

之后會(huì)提示輸入不少于六位的密碼变姨,之后還需要重復(fù)輸入族扰,以及填寫其他信息等。按照步驟來就行钳恕,關(guān)鍵就是要記住密碼别伏。spring boot中在配置文件application.properties中添加幾條配置

#需吧生成的文件放在與配置文件相同目錄下
#server.ssl.key-store=classpath:keystore.p12
#配置證書密碼
#server.ssl.key-store-password=111111 
##server.ssl.keyStoreType=PKCS12
#可以手動(dòng)指定端口,否則使用默認(rèn)的8443端口
#server.ssl.keyAlias:tomcat

之后重啟項(xiàng)目可以看見服務(wù)端!


image.png

由于證書是自己創(chuàng)建的所以肯定為無效證書


image.png

添加證書的信任

之后我使用java跑測試時(shí)候又報(bào)了這樣的錯(cuò)誤

avax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: No subject alternative names present

這樣是因?yàn)樘砑油阧ttps之后如果使用java.net或者Android進(jìn)行訪問的話還是需要添加信任忧额。java應(yīng)用的話需要將證書添加到支持厘肮。可以從網(wǎng)站下載二進(jìn)制文件睦番。首先點(diǎn)擊上圖的證書之后點(diǎn)擊復(fù)制到文件


image.png

之后點(diǎn)擊下一步类茂,選擇der文件格式的證書。使用該命令可以導(dǎo)入到本地的cacerts證書庫

keytool -import -alias vbooking -keystore cacerts -file ${JAVA_HOME}/jre/lib/security/vbooking.cer

之后不管是在本地跑java測試還是托嚣,用到j(luò)ava.net.HttpURLConnection本地是不會(huì)報(bào)錯(cuò)的巩检。Android端的話在網(wǎng)絡(luò)安全配置文件中res/raw/my_ca中添加剛才生成的DER格式證書。

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <domain-config>
        <domain includeSubdomains="true">example.com</domain>
        <trust-anchors>
            <certificates src="@raw/my_ca"/>
        </trust-anchors>
    </domain-config>
</network-security-config>

其中需要注意的一點(diǎn)就是示启,在Android端使用網(wǎng)路請求時(shí)候不能在ui主線程中使用網(wǎng)絡(luò)請求兢哭,應(yīng)該在AsyncTask中來調(diào)用,關(guān)于AsyncTask的使用之前也總結(jié)過夫嗓。另外一點(diǎn)是需要在添加網(wǎng)絡(luò)請求權(quán)限迟螺。

<uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市舍咖,隨后出現(xiàn)的幾起案子矩父,更是在濱河造成了極大的恐慌,老刑警劉巖排霉,帶你破解...
    沈念sama閱讀 211,123評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件窍株,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)球订,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門后裸,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人辙售,你說我怎么就攤上這事轻抱》赏浚” “怎么了旦部?”我有些...
    開封第一講書人閱讀 156,723評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長较店。 經(jīng)常有香客問我士八,道長,這世上最難降的妖魔是什么梁呈? 我笑而不...
    開封第一講書人閱讀 56,357評(píng)論 1 283
  • 正文 為了忘掉前任婚度,我火速辦了婚禮,結(jié)果婚禮上官卡,老公的妹妹穿的比我還像新娘蝗茁。我一直安慰自己,他們只是感情好寻咒,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,412評(píng)論 5 384
  • 文/花漫 我一把揭開白布哮翘。 她就那樣靜靜地躺著,像睡著了一般毛秘。 火紅的嫁衣襯著肌膚如雪饭寺。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,760評(píng)論 1 289
  • 那天叫挟,我揣著相機(jī)與錄音艰匙,去河邊找鬼。 笑死抹恳,一個(gè)胖子當(dāng)著我的面吹牛员凝,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播奋献,決...
    沈念sama閱讀 38,904評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼健霹,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了秽荞?” 一聲冷哼從身側(cè)響起骤公,我...
    開封第一講書人閱讀 37,672評(píng)論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎扬跋,沒想到半個(gè)月后阶捆,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,118評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,456評(píng)論 2 325
  • 正文 我和宋清朗相戀三年洒试,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了倍奢。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,599評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡垒棋,死狀恐怖卒煞,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情叼架,我是刑警寧澤畔裕,帶...
    沈念sama閱讀 34,264評(píng)論 4 328
  • 正文 年R本政府宣布,位于F島的核電站乖订,受9級(jí)特大地震影響扮饶,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜乍构,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,857評(píng)論 3 312
  • 文/蒙蒙 一甜无、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧哥遮,春花似錦岂丘、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至君仆,卻和暖如春翩概,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背返咱。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評(píng)論 1 264
  • 我被黑心中介騙來泰國打工钥庇, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人咖摹。 一個(gè)月前我還...
    沈念sama閱讀 46,286評(píng)論 2 360
  • 正文 我出身青樓评姨,卻偏偏與公主長得像,于是被迫代替她去往敵國和親萤晴。 傳聞我的和親對象是個(gè)殘疾皇子吐句,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,465評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • 目錄 準(zhǔn)備 分析2.1. 三次握手2.2. 創(chuàng)建 HTTP 代理(非必要)2.3. TLS/SSL 握手2.4. ...
    RunAlgorithm閱讀 37,987評(píng)論 12 117
  • Android安全問題--漏洞及解決方案(轉(zhuǎn)) 關(guān)鍵字:漏洞解決方案Android安全問題 1. 程序可被任意調(diào)試...
    FlatMap2021閱讀 4,268評(píng)論 0 2
  • 別人的總結(jié)不一定適合自己,所以盡量多做一些自己的總結(jié)店读,針對自己的薄弱點(diǎn)重點(diǎn)說明嗦枢,適當(dāng)?shù)慕梃b別人,少走一些彎路屯断。最重...
    renkuo閱讀 7,383評(píng)論 2 48
  • 6.1 公鑰密鑰加密原理 6.1.1 基礎(chǔ)知識(shí) 密鑰:一般就是一個(gè)字符串或數(shù)字文虏,在加密或者解密時(shí)傳遞給加密/解密算...
    AndroidMaster閱讀 4,004評(píng)論 1 8
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對...
    cosWriter閱讀 11,090評(píng)論 1 32