2016-11-01 75 views
0

嗨我嘗試使用Alamofire爲我的項目,但錯誤出來。 這裏是我的請求的代碼 //谷歌測試Alamofire 4失敗:錯誤域= NSURLErrorDomain代碼= -999「取消」

Alamofire.request("http://google.com").responseString{ 
     response in 
     debugPrint(response) 
    }.session.invalidateAndCancel() 

結果]:失敗:錯誤域= NSURLErrorDomain代碼= -999 「取消」

的UserInfo = {NSErrorFailingURLKey = http://google.com/

NSLocalizedDescription =取消,

NSErrorFailingURLStringKey = http://google.com/}

//自己的服務器測試

Alamofire.request("https://10.68.24.127:4533").responseString{ 
     response in 
     debugPrint(response) 
    }.session.invalidateAndCancel() 

相同的結果

class NetworkManager { 

var manager: SessionManager? 

init() { 
    let serverTrustPolicies: [String: ServerTrustPolicy] = [ 
     "https://10.68.24.127:4533" : .disableEvaluation 
    ] 
    let configuration = URLSessionConfiguration.default 
    manager = Alamofire.SessionManager(
     configuration: configuration, 
     serverTrustPolicyManager :ServerTrustPolicyManager(policies: serverTrustPolicies) 
    ) 
} 
    } 

我設置NSAllowsArbitraryLoads爲true,並NSExceptionDomains。

問題在哪裏?

+0

您立即調用'invalidateAndCancel()',它完全按照它的意思進行調用。與SSL無關。 –

回答

0

檢查上述文件從Alamofire app-transport-security

嘗試添加以下你的.plist文件

<key>NSAppTransportSecurity</key><dict> 
<key>NSExceptionDomains</key> 
<dict> 
    <key>url.com</key> 
    <dict> 
     <key>NSExceptionAllowsInsecureHTTPLoads</key> 
     <true/> 
     <key>NSExceptionRequiresForwardSecrecy</key> 
     <false/> 
     <key>NSIncludesSubdomains</key> 
     <true/> 
    </dict> 
</dict> 

+0

嘗試過但失敗。我只是轉而使用SwiftyHttp來完成我的工作 –

0

最有可能的,你應該檢查是否有認證挑戰委託的實現方法並檢查它是否調用NSURLSessionAuthChallengeCancelAuthenticationChallenge。

- (void)URLSession:(NSURLSession *)session didReceiveChallenge:(NSURLAuthenticationChallenge *)challenge 
              completionHandler:(void (^)(NSURLSessionAuthChallengeDisposition disposition, NSURLCredential * _Nullable credential))completionHandler 
相關問題