2013-03-04 168 views
0

因此,看起來ASIHTTPRequest允許您忽略https://端點上的證書。我目前正在使用MKNetworkKit並實現了我所有的呼叫。不幸的是,我們的測試服務器在https上,但沒有SSL證書。忽略ssl證書MKNetworkKit

我能夠使用-k命令使用捲曲進行良好連接。我試過MKNetworkKit中的各種東西來忽略NSURLAuthenticationChallenge,但無濟於事。我試過的最新東西如下:

op.authHandler = ^(NSURLAuthenticationChallenge *challenge) 
{ 
    NSURLCredential *credential = [NSURLCredential credentialWithUser:_userName password:password persistence:NSURLCredentialPersistenceNone]; 
    [challenge.sender useCredential:credential forAuthenticationChallenge:challenge]; 
}; 

這讓我真的得到了401錯誤返回(而不是空白)。查看捲曲字符串,MKNetworkKit在上面的塊命中時剝去我的用戶名/密碼。我不確定這是否進展。

任何人都知道如何忽略SSL證書?

編輯:

我不得不更新MKNetwork套件來獲得新的方法ShouldContinueWithInvalidCertificateMKNetworkOperation和我的測試服務器得到了certError固定。

但是,現在我發生了一個奇怪的錯誤。我仍然無法從服務器上的兩個特定端點獲得任何回報。我查看請求,將其作爲捲曲複製到命令中,並立即返回結果。我沒有從操作中得到任何錯誤。

這裏發生了什麼?

回答

4

MKNetworkOperation類具有名爲shouldContinueWithInvalidCertificate的屬性,默認爲NO。您所要做的就是將其設置爲YES,並且會忽略證書。

的評論:

/*! 
* @abstract Boolean variable that states whether the operation should continue if the certificate is invalid. 
* @property shouldContinueWithInvalidCertificate 
* 
* @discussion 
* If you set this property to YES, the operation will continue as if the certificate was valid (if you use Server Trust Auth) 
* The default value is NO. MKNetworkKit will not run an operation with a server that is not trusted. 
*/ 
+0

有趣的 - 看起來像我使用的版本,在那裏,這是不可用。我已經更新並嘗試使用它,但它仍然無法連接到api端點。奇怪的是它返回絕對沒有數據,但沒有錯誤。當我運行由MKNetworkKit生成的curl等價請求時,我得到一個ssl錯誤(因爲服務器沒有證書)。當我把-k放入時,我得到有效的回報。有任何想法嗎? – LyricalPanda 2013-03-05 04:53:02

+0

嗯。我建議你啓用調試: #define DEBUG 1 – 2013-03-06 03:07:37

+0

然後你可以看MKNK日誌,因爲它面臨挑戰 – 2013-03-06 03:07:55