2016-10-13 6 views
-2

問題があります。 Safariはページttp://ip-api.com/jsonをロードできますが、URLSessionタスクはロードできません。 ここでは、コンソールログには、次のエラー内容を報告するのviewDidLoadJSONデータをダウンロードできません

let url = URL(string: "http://ip-api.com/json")! 
    let request = URLRequest(url: url) 
    let task = URLSession.shared.dataTask(with: request, completionHandler: {(data, response, error) -> Void in 
     print("this is the server response: \(response)") 
     if error != nil { 
      print("some error: \(error)") 
     } else { 
      if let urlContent = data { 
       print(urlContent) 
      } 
     } 
    }) 
    task.resume() 

内のコードです:

...若干の誤差は:オプションが(エラードメイン= NSURLErrorDomainコード= -1022「リソースをロードできませんでしたAppInfo = {NSUnderlyingError = 0x60800005bc00 {エラードメイン= kCFErrorDomainCFNetworkコード= -1022 "(ヌル)"}、NSErrorFailingURLStringKey = http://ip-api.com/json、NSErrorFailingURLKey = http://ip-api.com/json、NSLocalizedDescription =リソースは次のようにして保護されている可能性があります。 App Transport Securityポリシーが必要とするため、読み込まれません。安全な接続の使用}}

+1

[App Transport Securityポリシーでセキュリティで保護された接続が必要なため、リソースをロードできませんでした](http://stackoverflow.com/questions/32631184/the-resource-could-not-be-読み込まれたためにアプリ転送セキュリティポリシーのrequi) – vadian

答えて

0

些細な間違いがありました。 plist項目を編集するとき <key>とプロパティ名の間にスペースを入れました。 <key> NSAppTransportSecurity</key>のようになりました。あなたのInfo.plistファイルで申し訳ありません

0

<key>NSAppTransportSecurity</key> 
    <dict> 
     <key>NSAllowsArbitraryLoads</key> 
     <true/> 
     <key>NSExceptionDomains</key> 
     <dict/> 
     <key> http://ip-api.com</key> 
     <string></string> 
    </dict> 

これを追加それはあなたのために動作します。

+1

ありがとうございました。 .plistソースのとNSAppTransportSecurityの間の空白を忘れてしまった。問題は解決されました。 –

関連する問題