2016-06-23 3 views
0

URLからjsonにデータを表示するようリクエストするアプリケーションを実行しています。すべて正常に動作していましたが、最近APIがhttpsに変わりましたが、証明書が無効です。だから私は、私が取得URLからロードしようとするたび:無効な証明書を持つURLからJSONをロードする

NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9813) 

私は私の.plistに

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

を追加してみました(APIは前のhttpたので、ここではすでにあった)

私はSwiftyJSONを使用し、私のコードは次のようになります

override func viewDidLoad() { 
    super.viewDidLoad() 
    json = JSON(data: getDataFromAPI("https://testaws.my_url.com/test")) 
} 

func getDataFromAPI(urlToRequest: String) -> NSData { 
    return NSData(contentsOfURL: NSURL(string: urlToRequest)!)! 
} 

また、NSURLConnectionを使用して2つ追加しました接続方法はまだ動作しません

答えて

0

私は、SwiftyJSONと統合されたAlamofireライブラリを使用しているように、jsonを取得するために別の方法を使用することが考えられます。 READMEには、あなたが証明書(参照:https://github.com/Alamofire/Alamofire#security)の信頼ポリシーをカスタマイズするために聞かせてセクションがある

+0

質問は、「サーバ上で無効な証明書を使ってjsonをロードする方法」でした。彼は証明書が無効であることを知っているので、(URLが示唆しているようにテストするための)ソリューションは、URLのセキュリティチェックを無効にし、より良い状況を管理するライブラリを使用し、 – wolfy

+0

Alamofireで安心できるようになるには少し時間がかかりましたが、最終的にはすべてうまくいっていて、よく見えます。だから私はこれが何とか解決策だと思う。ありがとうございました! –

0

私は同じ問題を通して私の解決策を行っているあなたは、エラーの上

NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9813) 

それを試してみてください助けるかもしれませんSSL証明書が期限切れになっているか、デバイスの時刻が正しく設定されていないかのいずれかです。

1)SSL証明書の有効期限が切れていることを確認します。

2)アプリケーションをビルドするデバイスの時刻を確認します。

関連する問題