1. 程式人生 > >iOS9 http無法請求的解決方法

iOS9 http無法請求的解決方法

iOS9對應用通訊安全策略進行了升級, 已不再支援http這種不安全的協議(具體可見網址:)

新特性要求App內訪問的網路必須使用HTTPS協議,http是超文字傳輸協議, 資訊採用明文傳輸, 而https則使用SSL加密傳輸協議進行傳輸。
但是現在公司的專案使用的是HTTP協議,使用私有加密方式保證資料安全。現在也不能馬上改成HTTPS協議傳輸。

因此設定成http訪問在某些情況下是必然的,具體的更改方式有兩種

一是更改Info.plist檔案,使用Source Code開啟,新增如下程式碼:

<key>NSAppTransportSecurity</key>
<dict>
  <key>NSAllowsArbitraryLoads</key>
  <true/>
</dict>

代表可以進行任意的http請求

方法二:同樣在Info.plist檔案裡直接新增字典 

型別NSAppTransportSecurityDictionary,子字典為NSAllowsArbitraryLoads,型別Boolean,設定為YES;

不過上面介紹的方法雖然解決了網路訪問的問題,但是蘋果提供的安全保障也被關閉了。但是按照國內的現狀,關閉這個限制也許是更實際的做法。至於原因就太多了,第三方SDK(幾乎都是訪問HTTP),合作伙伴接入(不能要求它們一定要支援HTTPS)。

如果你的App沒有受到這些原因的限制,還是更建議你增加HTTPS支援,而不是關閉限制。

出於安全考慮我們提倡使用HTTPS

https雖然還未普及,但是它的加密比較安全性高,所以比較建議將https設為優先,http設定為例外訪問,具體如下:

    <key>NSAppTransportSecurity</key>
    <dict>
        <key>NSExceptionDomains</key>
        <dict>
            <key>qq.com</key>
            <dict>
                <key>NSIncludesSubdomains</key
>
<true/> </dict> <key>sina.com.cn</key> <dict> <key>NSIncludesSubdomains</key> <true/> </dict> </dict> </dict>

根據自己需要的域名修改, NSIncludeSubdomains 就是包括子域的意思。



相關推薦

iOS9 http無法請求解決方法

iOS9對應用通訊安全策略進行了升級, 已不再支援http這種不安全的協議(具體可見網址:) 新特性要求App內訪問的網路必須使用HTTPS協議,http是超文字傳輸協議, 資訊採用明文傳輸, 而h

android9.0 無法進行http請求解決方法。CLEARTEXT communication to host not permitted by network security

轉自:https://blog.csdn.net/qq_18620851/article/details/80617549  問題: 由於 Android P 限制了明文流量的網路請求,非加密的流量請求都會被系統禁止掉。 如果當前應用的請求是 htttp 請求,而非 https ,

curl無法訪問http/https的解決方法

今天一個師兄說一個程式一直都出現50錯誤..得不到解決 工作人員排除了客戶端的問題,然後扔了一個curl元件,讓師兄自己測試。 我也好奇湊了上去.. 咦,這好像是代理弄的埠啊,我順藤摸瓜查了一下誰佔用了埠 然而並沒發現有程式佔用埠 我懷疑是不是代理,然後,我運行了工

請求WebService出現"因 URL 意外地以 結束,請求格式無法識別"解決方法

最近在擺弄jeasyui,這玩意兒用著方便,稱手,但太方便了,就少了一點靈活。 在用jeasyui中DataGrid請求WebService(asmx檔案)時,莫名的出現沒資料,具體表現為:     本地開發除錯,能正常請求到伺服器資料;     釋出到IIS上後,客戶端電

python + tensorflow tensorboard HTTP://0.0.0.0:6006 無法訪問 解決方法

啟動命令: tensorboard --logdir="tensorboard" 啟動後顯示 Starting TensorBoard b'47' at http://0.0.0.0:6006 ... 因為 win10 將 localhost 解析為 ipv6地址 [::1],所以無法使用  http://

Thinkphp3.2.3驗證碼無法顯示解決方法

function 驗證碼 public verify 信息 方法1 public function verify(){ ob_clean();//清除BOM信息 $Verify = new \Think\Verify(); $Verif

IIS部署時未能加載程序集"System.Web.Http.WebHost"解決方法

dll 部署 地址 行程 加載 img iis web mvc 問題如下 服務器沒有安裝MVC,下載以下dll覆蓋到bin目錄下,即可免安裝運行程序。 下載地址:https://pan.baidu.com/s/1mhCo5mSIIS部署時未能加載程序集"Syst

WebAPI Ajax 跨域請求解決方法(CORS實現)

custom XML header 就會 情況 取數 -o cross serve 概述 ASP.NET Web API 的好用使用過的都知道,沒有復雜的配置文件,一個簡單的ApiController加上需要的Action就能工作。 但是在使用API的時候總會遇到跨

Centos虛擬機克隆後無法上網解決方法

linux一、故障現象: # service network restart Shutting down loopback insterface: [ OK ] Bringing up loopback insterface: [ OK ] Brin

Ambari 節點壞掉不要的節點 無法刪除解決方法

url div restart ntp 無法刪除 pre host 點擊 2.0 1.配置一臺和壞掉的節點一樣的ip和 hostname 2.安裝ntp服務(根據自己時間同步方案安裝情況而定) 使時間同步 3.安裝 ambari-agent 可以去我共享了一個地址下載: h

文件夾路徑太深無法刪除解決方法

aud splay delet cmd命令 empty 目錄 解決方法 文件夾路徑 spl 在cmd命令行窗口中輸入robocopy empty_dir will_delete_dir /purge empty_dir 新建的空白目錄 will_delete_dir 要

Exchange 2016 &XP&outlook 2010 sp2無法配置解決方法

xp&outlook 2010 sp2環境:Server :Windows Server 2016 + Exchange Server 2016 CU4客戶端:Windows XP sp3 + outlook 2010 sp2 以上環境無法配置outlook,會一直提示輸入密碼,在win7下正常。解決方法如下

實用案例 - SqlServer數據庫數據無法讀取解決方法

數據恢復 數據庫 無法讀取 恢復 1、數據庫故障概述SQL server數據庫的數據無法被讀取。2、故障分析SQL server數據庫文件無法被讀取,是由於底層File Record被截斷為0,無法找到文件開頭,數據表結構也被損壞。鏡像文件的前面80M左後的空間,還有中間一部分被覆蓋掉,導致系

ajax請求解決方法及案例

nts scrip ava hsi extend cond 得到 als 使用   當前項目對用戶體驗的要求層出不窮,本篇通過所歷項目與前輩網文日誌加以記錄總結。   多個 ajax 請求的各類解決方案:同步,隊列,cancel 請求,本章末尾提供 demo,或點這裏。  

好系統U盤啟動分享win7電腦無法關機解決方法

應用程序 window 對話 組策略 運行 管理模板 進行 無法關機 www. 最近有位win7系統用戶在電腦關機的時候,碰到了電腦無法關機的情況,很多時候需要強制關機,才能夠把電腦關機,用戶不知道怎麽辦,為此非常苦惱,那麽win7電腦無法關機怎麽辦呢?今天好系統U盤啟動為

horizon桌面池中虛擬機提示缺少無法刪除解決方法

move nis conf -o 運行 mark ati 桌面池 cmd horizon桌面池中虛擬機提示缺少無法刪除解決方法 在作horizon管理的時候,由於機器突然斷電,導致虛擬機文件出現問題,一般我們會將虛擬機移除後重新置備,但是有時候還是會出現如下圖文件缺失一直提

MySQL誤刪root使用者導致無法登陸解決方法

測試環境 刪除前 mysql> select user,host,password from mysql.user; +------+-----------+-------------------------------------------+ | user | h

Centos7.5 安裝Apache 瀏覽器無法訪問解決方法

已測,可以成功連線   1. 安裝Apache元件 [[email protected] shell]# yum install httpd 2. 安裝成功後,檢測有無httpd程序 [[email protected] shell]# ps -e

開發過程中用Zepto/jquery給未來元素新增事件,live()無法使用解決方法

 通過 live() 方法附加的事件處理程式適用於匹配選擇器的當前及未來的元素(比如由指令碼建立的新元素)。 live() 方法為被選元素附加一個或多個事件處理程式,並規定當這些事件發生時執行的函式。 $("button").live("click",function(){ $

phpcms 更換新域名更新欄目url和內容頁url無法更新解決方法

更換域名後更新欄目url和內容頁url還是無法更新為新的域名,手動把cache資料夾下能清除的快取檔案清除了還是不行,把資料庫的快取表內容清空了還是不行,問題在於欄目快取並沒有清除。 解決辦法: (1)、找到檔案:/caches/configs/system.php裡面所有和域名有關的