Login iPhone RestKit上的登录问题
我很难理解这个问题: 我正在使用Restkit for iPhone sdk 5.0,并在类会话中进行登录Login iPhone RestKit上的登录问题,login,restful-authentication,restkit,Login,Restful Authentication,Restkit,我很难理解这个问题: 我正在使用Restkit for iPhone sdk 5.0,并在类会话中进行登录 NSString* url=[[[RKClient sharedClient]baseURL]stringByAppendingString:@"/users/sign_in"] ; RKRequest *request = [RKRequest requestWithURL:[NSURL URLWithString:url] delegate:delegato]; r
NSString* url=[[[RKClient sharedClient]baseURL]stringByAppendingString:@"/users/sign_in"] ;
RKRequest *request = [RKRequest requestWithURL:[NSURL URLWithString:url] delegate:delegato];
request.queue = [RKClient sharedClient].requestQueue;
request.authenticationType = RKRequestAuthenticationTypeHTTP;
request.username = utente.email;
request.password = utente.password;
[request send];
delegato是我的主类,我在其中调用了login方法
然后我实现了请求:DidLoadResponse,其中a写了以下几行:
if ([response isSuccessful])
RKLogDebug(@"Login effettuato con successo %d", response.statusCode );
这总是返回200,因为状态代码总是使用正确的电子邮件和密码进行尝试,但是当我从myWebServer/recent.json收到最近的问题时,我有一个空的响应,我也尝试使用对象加载器,这与我未连接时的响应相同
日志系统向我打印了以下字符串:
2011-12-06 11:58:20.480 APP[4364:fb03]D restkit.network:RKRequest.m:362向URL mysite/recent.json发送异步GET请求。
2011-12-06 11:58:20.484 APP[4364:fb03]T restkit.network:RKRequest.m:310准备好获取URLRequest。HTTP标头:{
内容长度=0;
}.HTTP正文:。
2011-12-06 11:58:20.486应用程序[4364:fb03]D restkit.network.queue:RKRequestQueue.m:272已从队列发送请求。装载计数=5个中的2个
2011-12-06 11:58:20.487应用程序[4364:fb03]D restkit.network.queue:RKRequestQueue.m:443收到请求响应,正在从队列中删除。现在加载第1个,共5个
2011-12-06 11:58:20.622应用程序[4364:fb03]D restkit.网络:RKResponse.m:196 NSHTTPURLRResponse状态代码:406
2011-12-06 11:58:20.623应用程序[4364:fb03]D restkit.网络:RKResponse.m:197头文件:{
年龄=0;
缓存控制=无缓存;
连接=保持活动状态;
内容长度=1;
内容类型=应用程序/json;字符集=utf-8;
日期=2011年12月6日星期二10:58:20 GMT;
服务器=nginx/0.7.67;
过孔=1.1清漆;
X-Runtime=0.006494;
X-Ua-Compatible=IE=Edge,chrome=1;
X-清漆=1786715586;
}
2011-12-06 11:58:20.623 APP[4364:fb03]T restkit.网络:RKResponse.m:202读取响应主体:
2011-12-06 11:58:20.624应用程序[4364:fb03]I restkit.网络:RKRequest.m:562状态代码:406
2011-12-06 11:58:20.624应用程序[4364:fb03]I restkit.网络:RKRequest.m:563正文:
2011-12-06 11:58:20.625附录[4364:fb03]第406号密码第406段中的错误验证
2011-12-06 11:58:20.625应用程序[4364:fb03]D restkit.network.queue:RKRequestQueue.m:443收到请求响应,正在从队列中删除。现在正在加载0/5
这是什么意思
非常感谢你的帮助
json是:
{
"_id":"4ede406d5040dc0001000009",
"answers_count":2,
"cache_slugs":[
{"_id":"4ede406d5040dc000100000a","slug":"faccio-prova-di-domanda"},
{"_id":"4ede41d8bf3a9e0001000008","slug":"faccio-prova-di-domanda"},
{"_id":"4ee61fd7f24ee9000100008b","slug":"faccio-prova-di-domanda"}],
"created_at":"2011-12-06T16:18:53+00:00",
"detail":"",
"followed_by_user_ids":["4eca5fa1166f360001000014","4eca5fa1166f360001000014","4dd43ff93c40760001000004"],
"slug":"faccio-prova-di-domanda",
"text":"faccio prova di domanda",
"topic_ids":[],
"updated_at":"2011-12-12T15:37:58+00:00",
"user_id":"4eca5fa1166f360001000014"}
我的映射是这样的:
RKObjectMapping* questMapping = [RKObjectMapping mappingForClass:[Question class]];
questMapping.setDefaultValueForMissingAttributes=YES;
[questMapping mapKeyPath:@"_id" toAttribute:@"idDomanda"];
[questMapping mapKeyPath:@"text" toAttribute:@"titoloDomanda"];
[questMapping mapKeyPath:@"detail" toAttribute:@"dettaglioDomanda"];
//[questMapping mapKeyPath:@"user_id" toRelationship:@"identificativo" withMapping:userMapping];
[questMapping mapKeyPath:@"created_at" toAttribute:@"dataCreazione"];
[questMapping mapKeyPath:@"updated_at" toAttribute:@"aggiornataAlle"];
[questMapping mapKeyPath:@"answers_count" toAttribute:@"numeroRisposte"];
[questMapping mapKeyPath:@"topic_ids" toAttribute:@"topics"];
[questMapping mapKeyPath:@"followed_by_user_ids" toAttribute:@"followers"];
[objectManager.mappingProvider addObjectMapping:questMapping];
[[RKObjectManager sharedManager].mappingProvider setSerializationMapping:questMapping forClass:[Question class]];
我的登录密码是:
[[RKClient sharedClient] setUsername:self.email];
[[RKClient sharedClient] setUsername:self.password];
[RKObjectManager sharedManager].client=[RKClient sharedClient];
RKParams *params = [RKParams params];
[params setValue:self.email forParam:@"username"];
[params setValue:self.password forParam:@"password"];
[[RKClient sharedClient] setAuthenticationType:RKRequestAuthenticationTypeHTTP];
[[RKClient sharedClient] post:@"/users/sign_in" params:params delegate:delegato];
是否正确?您需要使用[[RKObjectManager sharedManager].mappingProvider addObjectMapping:mapping]定义映射;更多详细信息请参阅,并在没有KVC部分的情况下查找映射对不起,伙计们,我执行GET请求时出错,我不得不发布它。但是我不能登录。我应该使用什么:RKRequest、RKClient或RKObjectLoader?如果您想从restkit提供的对象映射功能中获益,应该使用[[RKObjectManager sharedManager]loadObjectsAtResourcePath:问题不仅在于如何做,而且在于如何做,因为实际上我做不到!我做了登录,我检查响应是否成功,但是当我使用objectloader尝试loda/blablabla.json时,它不起作用,它给我带来了错误404。我如何解决这个问题?我需要查看您的代码。如果您得到404,那么URL是正确的g、 很显然,除了登录过程之外,一切都很好!我使用objetManager post方法做得很好,但显然服务器返回给我的JSON没有RootkeyPath,因此它告诉我他找不到其他键“”的映射。我必须修改服务器发送给我的JSON!…对吗?我做了,但它似乎不起作用。我f我在我工作的浏览器上执行相同的步骤,调用/recent.json给了我所有最近的问题。加上对该请求的响应继续给我200状态代码!请发布您的json、映射和用于检索记录的代码。