我能够使用这个答案来帮助我使用客户端证书登录我的应用程序。
Getting Client Certificate for Mutual Authentication with Alamofire
登录时一切正常。现在,我需要发出另一个上传文件的请求。我使用了上一篇文章中的相同代码来获取 p12 文件并创建我的 serverTrustPolicy 并将其添加到我的 session 管理器中,但是当我发出请求时,服务器告诉我我没有将证书传递给他们。
我不明白为什么代码适用于一个实例,而不适用于另一个实例。两者之间的唯一区别是:
作品:
manager = Alamofire.SessionManager(serverTrustPolicyManager: ServerTrustPolicyManager(policies: serverTrustPolicy))
不起作用:
manager = Alamofire.SessionManager(configuration: configuration, serverTrustPolicyManager : ServerTrustPolicyManager(policies: serverTrustPolicy))
两者都使用完全相同的 didChallenge Delegate。
如有任何见解,我将不胜感激。
最佳答案
很明显,问题是由于具有配置和 ServerTrustPolicyManager。当我只有一个 STPM 并将我的 header 放在上传函数中时,调用工作正常。也许在应用程序中尝试进行两次后台调用会导致问题。默认和临时调用工作得很好。
关于swift - 在 Alamofire 问题中上传文件的客户端证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41018826/