2016-04-16 24 views
0

Ich möchte Alamofire in meiner schnellen Anwendung verwenden, um die Daten vom Server zu erhalten. Aber wenn ich eine Anfrage über Alamofire sende, wird immer ein Fehler ausgegeben. Aber wenn ich NSUrlSession mit Standardkonfiguration verwende, funktioniert es.Alamofire HTTPS Anfrage fehlgeschlagen

versuchte ich this Lösung, aber immer noch seine nicht

-Code arbeiten, die ich

let headers = [ 
     "Authorization": validationHeader 
    ] 

    let completeUrl = kReserveBaseURL + strMyResURL 
    Alamofire.request(.GET, completeUrl, headers: headers) 
     .response { request, response, data, error in 
      debugPrint(error) 
      debugPrint(response) 
    } 

unten, um die Probleme sind verwende, die ich erhalte

Some : Error Domain=NSURLErrorDomain Code=-1202 "The certificate for this server is invalid. You might be connecting to a server that is pretending to be “abc.xyz.com” which could put your confidential information at risk." UserInfo={NSURLErrorFailingURLPeerTrustErrorKey=<SecTrustRef: 0x7ff0c22052d0>, NSLocalizedRecoverySuggestion=Would you like to connect to the server anyway?, _kCFStreamErrorDomainKey=3, _kCFStreamErrorCodeKey=-9813, NSErrorPeerCertificateChainKey=<CFArray 0x7ff0c044b840 [0x10996ba40]>{type = immutable, count = 2, values = (
    0 : <cert(0x7ff0c22044c0) s: abc.xyz.com i: Verizon Public SureServer EV SSL CA G14-SHA2> 
    1 : <cert(0x7ff0c2204770) s: Verizon Public SureServer EV SSL CA G14-SHA2 i: Cybertrust Global Root> 
)}, NSUnderlyingError=0x7ff0c2302070 {Error Domain=kCFErrorDomainCFNetwork Code=-1202 "(null)" UserInfo={_kCFStreamPropertySSLClientCertificateState=0, kCFStreamPropertySSLPeerTrust=<SecTrustRef: 0x7ff0c22052d0>, _kCFNetworkCFStreamSSLErrorOriginalValue=-9813, _kCFStreamErrorDomainKey=3, _kCFStreamErrorCodeKey=-9813, kCFStreamPropertySSLPeerCertificates=<CFArray 0x7ff0c044b840 [0x10996ba40]>{type = immutable, count = 2, values = (
    0 : <cert(0x7ff0c22044c0) s: abc.xyz.com i: Verizon Public SureServer EV SSL CA G14-SHA2> 
    1 : <cert(0x7ff0c2204770) s: Verizon Public SureServer EV SSL CA G14-SHA2 i: Cybertrust Global Root> 
)}}}, NSLocalizedDescription=The certificate for this server is invalid. You might be connecting to a server that is pretending to be “abc.xyz.com” which could put your confidential information at risk., NSErrorFailingURLKey=https://abc.xyz.com/Api/CheckIn/GetData?userId=0&BookingDate=2016-04-16, NSErrorFailingURLStringKey=https://abc.xyz.com/Api/CheckIn/GetData?userId=0&BookingDate=2016-04-16, NSErrorClientCertificateStateKey=0} 
+0

Kann ich Code-Snippets sehen, die Sie verwenden, um die Anfrage zu beantworten? –

Antwort

0

Es sieht aus wie Sie sind Behebung dieses Fehlers aufgrund von iOS-Sicherheitsbeschränkungen (Untruster-Serverzertifikat auf SSL-Ebene). Ich würde empfehlen, diese Ausnahme durch das Hinzufügen von Sicherheits in der Sie App info.plist zu beheben:

<key>NSAppTransportSecurity</key> 
<dict> 
    <!--Include to allow all connections (DANGER)--> 
    <key>NSAllowsArbitraryLoads</key> 
<true/> 
</dict> 

Quelle Link: https://ste.vn/2015/06/10/configuring-app-transport-security-ios-9-osx-10-11/

Nach dem Hinzufügen dieses sollte man nicht den Fehler beobachten mehr.

Wenn es hilft, können Sie Depper mit diesem herauszufinden:

https://developer.apple.com/library/ios/documentation/General/Reference/InfoPlistKeyReference/Articles/CocoaKeys.html?hl=sw

Especialy entsprechenden Abschnitt an Sie: "Mit dem nscurl Werkzeug ATS-Verbindungsprobleme zu diagnostizieren"

0

Sein, weil der Sicherheitsbeschränkungen. Fügen Sie in der info.plist diese zwei Kommentare hinzu: see this image

Verwandte Themen