2012-12-10 30 views
0

我想使用restKit api 我需要從iOS的Web服務獲取信息(json)。我的Web服務有基本身份驗證基本身份驗證 - reskit -iOS

enter image description here

我試圖登錄用下面的代碼:

RKURL *baseURL = [RKURL URLWithBaseURLString:@"http://mysite.com"]; 
RKClient *client= [RKClient sharedClient]; 
    client.username = @"user"; 
    client.password = @"passw"; 
    client.authenticationType = RKRequestAuthenticationTypeHTTPBasic; 

RKRequest * therequest = [client requestWithResourcePath:@"/authentication"]; 
    [therequest setMethod:RKRequestMethodPOST];          
    [therequest setDelegate:self];        
    [therequest send]; 

但我不能得到它。

請...你能給我一個關於restKit基本認證的例子。

最好的問候!

+0

刪除'therequest.additionalHTTPHeaders'線,它應該工作的罰款。 –

+0

是的,我刪除了線......但我怎麼知道身份驗證是否正常工作?當登錄成功返回聯合國請求的關鍵...我怎麼能得到這個關鍵...我是iOS中最新的:( –

+0

只需看看委託方法:http://restkit.org/api/master/協議/ RKRequestDelegate.html –

回答

0

我解決了用下面的代碼的問題:

RKURL *baseURL = [RKURL URLWithBaseURLString:@"http://api.mysite.com"]; 
    RKObjectManager *objectManager = [RKObjectManager objectManagerWithBaseURL:baseURL]; 
    objectManager.client.baseURL = baseURL;  
    objectManager.client.username = @"user"; 
    objectManager.client.password = @"passw"; 

    objectManager.serializationMIMEType = RKMIMETypeXML; 


    RKURL *URL = [RKURL URLWithBaseURL:[objectManager baseURL] resourcePath:@"/authentication"]; 

    NSLog(@"URL: %@", [URL absoluteString]); 
    NSLog(@"resourcePath: %@", [URL resourcePath]); 
    NSLog(@"query: %@", [URL query]); 

    [objectManager loadObjectsAtResourcePath:[NSString stringWithFormat:@"%@?%@", [URL resourcePath], [URL query]] delegate:self]; 

我等那麼asnwer將幫助別人

+0

我得到令牌從我的網站: NSLog(@「HTTP bodyAsString:%@」,[response bodyAsString]); –

0

首先thatnks你正確的答案, 請你告訴我們的Web服務是如何看喜歡。 怎麼我做我自己的,但並沒有真正與我們的代碼 工作,這是我的web服務

$UserName = $_GET['u']; 
   $Password = $_GET['p']; 

   include("Ldap.php"); 

   $ldap = new Ldap(); 

   if($ldap->authenticate($UserName, $Password)) 
{ 
       $json = array('status'=>'OK'); 
   } 
   else 
   { 
       $json = array('status'=>'ERROR'); 
   }