初めての iOS アプリをビルドするために開発環境をセットアップしようとしていますが、アプリ内から REST 呼び出しを実行しようとすると問題が発生します。ローカルホスト (ポート 8443) で実行されている JWT トークンを利用する自己署名証明書 (OpenSSL によって作成された) を使用しているエンドポイント サービス (Java Springboot App) に対して呼び出しが行われています。
これが私が得ている特定のエラーです:
domain: "NSURLErrorDomain" - code: 18446744073709550414 0x00007fca19c9e3b0
トラブルシューティングのために行ったことは次のとおりです。
- info.plist ファイルに「NSAppTransportSecurity」を設定しました
- エンドポイント サービスで SSL を無効にしてから、リクエストを実行しようとしたところ、すべて正常に機能しました (つまり、SSL リクエストに関連しているようです)。
- Postman を使用して、SSL エンドポイントからデータを正常に取得できます
- 使用しているiOSシミュレーターのプロファイルにSSL証明書をロードしました(緑色のチェック「検証済み」が付いています)
これが私のコードです:
func obtainState() {
let postEndpoint: String = "https://localhost:8443/api/state"
let url = NSURL(string: postEndpoint)!
let session = NSURLSession.sharedSession()
let request = NSMutableURLRequest(URL: url)
request.HTTPMethod = "GET"
request.setValue("eyJhbGciOiJIUzI1NiJ9.eyJ....", forHTTPHeaderField: "Authorization")
session.dataTaskWithRequest(request, completionHandler: { ( data: NSData?, response: NSURLResponse?, error: NSError?) -> Void in
guard let realResponse = response as? NSHTTPURLResponse where
realResponse.statusCode == 200 else {
print("Not a 200 response")
return
}
if let postString = NSString(data:data!, encoding: NSUTF8StringEncoding) as? String {
print("POST: " + postString)
}
}).resume()
}
このエラーが発生する理由と、それを回避するにはどうすればよいですか?
ご協力いただきありがとうございます。