2012-08-02 93 views
1

我对iOS开发非常陌生。这是我的第一个应用程序,我遇到了很大的麻烦。我不知道如何从RestKit开始。我试图在过去3周内在我的iOS应用程序中实施RestKit身份验证。我四处寻找了许多解决方案,但每个人都有不同的方法,因此无法提取哪些对我有用。iOS RestKit身份验证

我已经准备好了Web服务,这已经在我的Android应用程序中使用了。现在我想要为iOS使用相同的Web服务。

所以进行身份​​验证,我有一个登录服务这需要用户名和密码作为参数。它返回一个布尔值值(不是JSON或XML,但只是true或false)。 所以我没有找到任何解决办法来处理来自web服务器的布尔类型的响应。

如果有人能帮我解决这个问题。如果有人已经实施了类似的行为,那么请帮助我如何开始休息套件。即如何发送请求以及如何访问服务器发送的响应。

我提供了一段我试图实现的代码。

RKURL * baseUrl = [RKURL URLWithBaseURLString:@"https://webserver.org/login"]; 

RKObjectManager * objectManager = [RKObjectManager objectManagerWithBaseURL:baseUrl]; 

objectManager.client.username = txtUserName.text; 
objectManager.client.password = txtPassword.text; 
objectManager.client.authenticationType = RKRequestAuthenticationTypeHTTPBasic; 
objectManager.client.disableCertificateValidation = YES; 

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

在此先感谢, 任何形式的帮助将不胜感激。

+0

这是什么样的网络服务?它只返回一个单词(true或false)?你将如何处理这个错误?问题不在于Restkit,它是您的Web服务。你是否在控制你的网络服务器响应? – 2012-08-02 07:22:34

+0

感谢您的答复..但我在我的Android应用程序中使用相同的Web服务。它运作良好。那么我的Web服务应该返回什么,无论是JSON还是XML? – 2012-08-02 15:00:59

回答

1

如果您的后端没有返回对象(xml或json),则无需使用RKObjectManager。相反,请尝试直接发送请求RKClientget:queryParameters:delegate:选择器,与RKObjectManager相比,您可以获得较低级别的API。

此外,你说你的WS以用户名和密码作为输入 - 如果你在RKClient上设置了用户名和密码属性,凭证将被用于基本的HTTP验证。 queryParameters字典应该包含您的Web服务的任何输入参数。

实施例:

[[RKClient sharedClient] get:myResource queryParameters:params delegate:self]; 

一定要实现委托

- (void)request:(RKRequest *)request didLoadResponse:(RKResponse *)response 

更多细节请参考documentation

+0

感谢您的回复.. 在阅读Paul de Lange的评论后,我只想确认是否可以通过RKClient处理布尔类型的响应。 如果您有任何示例代码或我可以参考的任何链接.. 将非常感谢... – 2012-08-02 14:55:45