我想用https發送一個非常簡單的ASIHTTPRequest。雖然我已經設置了validatesSecureCertificate標誌爲「NO」,我還是得到了我的請求,一個奇怪的反應:ASIHTTPRequest https請求&SSL
A connection failure occurred: SSL problem (Possible causes may include a bad/expired/self-signed certificate, clock set to wrong date)
我使用的是非常簡單的,我刪除出於安全原因,實際參數代碼:
NSURL *url = [NSURL URLWithString:@"https://secured.cet.ac.il/KotarServices/getMyBooks.aspx?username=xxxxxxxx&password=xxxxx&packageid=x"];
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
[request setDidFailSelector:@selector(getMyBooksFailedWithError:)];
[request setDidFinishSelector:@selector(getMyBooksFinishedWithResult:)];
[request setDelegate:self];
[request setValidatesSecureCertificate:NO];
[request startAsynchronous];
深入研究代碼,我發現請求在「-9807」錯誤代碼上失敗,該代碼僅與操作系統相關,與我正在與之交互的服務器無關(SecureTransport.h將其映射爲「無效證書鏈」)。任何想法如何克服這個問題?提前致謝。
謝謝,我明天會嘗試這個第一件事,並讓你知道它是否有幫助 – Stavash
不幸的是,這並不能解決問題。仍然得到相同的錯誤代碼。無論如何努力 – Stavash
更新:我解決了這個問題,通過設置[sslProperties setObject:(NSString *)kCFBooleanTrue forKey:(NSString *)kCFStreamSSLAllowsExpiredRoots],你確實指出了我在正確的方向 - 謝謝! – Stavash