在Alamofire问题中上传文件的客户端证书

时间:2016-12-07 13:31:53

标签: swift ssl alamofire client-certificates

我能够使用此答案帮助我使用客户端证书登录我的应用程序。

Getting Client Certificate for Mutual Authentication with Alamofire

登录时一切都很美妙。现在,我需要再次发送上传文件的请求。我使用上一篇文章中的相同代码来获取p12文件并创建我的serverTrustPolicy并将其添加到我的会话管理器,但是当我发出请求时,服务器告诉我我没有将证书传递给他们。

我不明白为什么代码适用于一个实例,而不是另一个实例。两者之间的唯一区别是:

使用:

manager = Alamofire.SessionManager(serverTrustPolicyManager: ServerTrustPolicyManager(policies: serverTrustPolicy))

不起作用:

manager = Alamofire.SessionManager(configuration: configuration, serverTrustPolicyManager : ServerTrustPolicyManager(policies: serverTrustPolicy))

两者都使用didChallenge代表完全一样。

我很感激任何见解。

1 个答案:

答案 0 :(得分:0)

显然,问题是由于配置和ServerTrustPolicyManager。当我只有一个STPM并将我的标题放在上传函数中时,调用工作正常。尝试在应用程序中进行两次后台调用可能会导致问题。默认和短暂的通话工作正常。