Мне трудно разобраться в этой проблеме: я использую Restkit для iPhone SDK 5.0, и я делаю вход в систему в классе Session
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 - это мой "мастер" класс, гдеЯ вызвал метод входа в систему.
Затем я реализовал запрос: didLoadRespons, где 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 Отправка асинхронного запроса GET на URLMySite / recent.json.2011-12-06 11: 58: 20.484 APP [4364: fb03] T restkit.network:RKRequest.m:310 Подготовлено GET URLRequest ''. Заголовки HTTP: {"Content-Length" = 0;}.Тело HTTP:.2011-12-06 11: 58: 20.486 APP [4364: fb03] D restkit.network.queue: RKRequestQueue.m: 272 Отправленный запрос из очереди.Количество загрузок = 2 из 5 2011-12-06 11: 58: 20.487 APP [4364: fb03] D restkit.network.queue: RKRequestQueue.m: 443 Полученный ответ на запрос, удаление из очереди.(Сейчас загружается 1 из 5) 2011-12-06 11: 58: 20.622 APP [4364: fb03] D restkit.network:RKResponse.m:196 NSHTTPURLResponse Код состояния: 406 2011-12-06 11: 58: 20.623 APP [4364: fb03] D restkit.network:RKResponse.m:197 Заголовки: {Age = 0;"Cache-Control" = "no-cache";Connection = "keep-alive";«Content-Length» = 1;"Content-Type" = "application / json; charset = utf-8";Дата = «Вт, 06 декабря 2011 10:58:20 GMT»;Сервер = "nginx / 0.7.67";Via = "1.1 лак";"X-Runtime" = "0,006494";"X-Ua-совместимый" = "IE = Edge, chrome = 1";"X-Varnish" = 1786715586;} 2011-12-06 11: 58: 20.623 APP [4364: fb03] T restkit.network:RKResponse.m:202 Прочитать текст ответа:
2011-12-06 11: 58: 20.624 APP [4364: fb03] Я restkit.network:RKRequest.m:562 Код состояния: 406 2011-12-06 11: 58: 20.624 Приложение [4364: fb03] Я restkit.network:RKRequest.m:563 Тело:
2011-12-06 11: 58: 20.625 APP [4364: fb03] Si verificato un errore con il seguente codice 406 2011-12-06 11: 58: 20.625 APP [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];
Это правильно?