Moyaから自己署名証明書を使っているHTTPSサーバーと通信する方法
以下の記事を参考にMoyaをどのようにカスタムするか
MoyaのSessionDelegateを継承したクラスを作る
class SelfSignedSSLSessionDelegate: SessionDelegate {
func urlSession(_ session: URLSession, didReceive challenge: URLAuthenticationChallenge, completionHandler: @escaping (URLSession.AuthChallengeDisposition, URLCredential?) -> Void) {
let protectionSpace = challenge.protectionSpace
// 認証チャレンジタイプがサーバ認証かどうか確認
// 通信対象のホストは想定しているものかどうか確認
guard protectionSpace.authenticationMethod == NSURLAuthenticationMethodServerTrust,
let serverTrust = protectionSpace.serverTrust
else {
// 特別に検証する対象ではない場合はデフォルトのハンドリングを行う
completionHandler(.performDefaultHandling, nil)
return
}
completionHandler(.useCredential, URLCredential(trust: serverTrust))
}
}
public extension MoyaProvider {
final class func selfSignedSSLAlamofireSession() -> Session {
let configuration = URLSessionConfiguration.default
configuration.headers = .default
return Session(configuration: configuration, delegate: PassmarketSessionDelegate(), startRequestsImmediately: false)
}
}
Moyaを使ったAPIの叩き方
let session = MoyaProvider<hogehogeAPIClient>.selfSignedSSLAlamofireSession()
let provider = MoyaProvider<hogehogeAPIClient>(session: session)
provider.rx.request(.getHogehoge)
.filterSuccessfulStatusCodes()
.subscribe()
.disposed(by: bag)
参考
iOSアプリから自己署名証明書を使っているHTTPSサーバーと通信する
https://qiita.com/chocoyama/items/890e3c35736c74733c55
Author And Source
この問題について(Moyaから自己署名証明書を使っているHTTPSサーバーと通信する方法), 我々は、より多くの情報をここで見つけました https://qiita.com/YOSUKE8080/items/5649d7fbff79382dc63e著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .