ASIHTTPRequest mit SSL nicht auf iOS 5.0/5.0.1
Ich bin mit ASIHTTPRequest v1.8.1 um eine HTTPS-Anfrage. Das problem ist, dass es nicht funktioniert auf iOS 5.0 & 5.0.1, während auf 5.1 & 5.1.1 funktioniert es einwandfrei. Der code ist ziemlich einfach:
__block ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:[NSURL URLWithString:RemoteNotiURL]];
[request setPostValue:@"i" forKey:@"plat"];
[request setPostValue:token forKey:@"token"];
[request setValidatesSecureCertificate:NO];
[request setCompletionBlock:^{
NSLog(@"done");
}];
[request setFailedBlock:^{
NSLog(@"error = %@", [request error]);
}];
[request startAsynchronous];
RemoteNotiURL
ist eine URL wie https://xxx.example.com
Der Fehler ist:
error = Error Domain=ASIHTTPRequestErrorDomain Code=1 "A connection failure occurred: SSL problem (Possible causes may include a bad/expired/self-signed certificate, clock set to wrong date)" UserInfo=0x18460b0 {NSUnderlyingError=0x1853ab0 "The operation couldn’t be completed. (OSStatus error -9800.)", NSLocalizedDescription=A connection failure occurred: SSL problem (Possible causes may include a bad/expired/self-signed certificate, clock set to wrong date)}
Was kann ich dagegen tun?
- Könnte im Zusammenhang mit diesem: stackoverflow.com/questions/7792949/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Als @JosephH sagte, dass die Lösung umfasst das ändern ASIHTTPRequest.m so ändern Sie die kCFStreamSSLLevel Eigenschaft des sslProperties Wörterbuch. In dieser Datei suchen Sie für den Kommentar
//Tell CFNetwork not to validate SSL certificates
Unter diesem Kommentar gibt es eine wenn-Klausel
Ändern Sie die wenn-Klausel, wie so
Damit sollte die Anforderungen der Arbeit wieder. Beide Anträge, die die Validierung von SSL-Zertifikaten und welche nicht validieren.
Getestet auf IOS 5.0.1 und 5.1.1.
Hoffe, das hilft.