2012-05-25 2 views
3

Хорошо, что я отлаживал весь день, но не могу понять, в чем проблема с моим кодом.Запрос RestKit работает только один раз

Цель состоит в том, чтобы отправить POST с RestKit в API Heroku с именем пользователя/паролем, чтобы получить ключ API.

Проблема в том, что я могу отправить запрос только один раз. При отправке запроса во второй раз я получаю ошибки. (Так что первый раз, когда я получить ключ API привязываться к моему объекту, но второй раз просто ошибка)

Я использую версию RestKit (0,10)

Код:

- (void)objectLoader:(RKObjectLoader *)objectLoader didFailWithError:(NSError *)error 
{ 
    NSLog(@"didFailWithError: %@", error); 
} 
- (void)objectLoader:(RKObjectLoader *)objectLoader didLoadObject:(id)object 
{ 
    Account *account = (Account *)object; 
    NSLog(@"API_KEY: %@", account.apiKey); 
} 

- (IBAction) login:(id)sender 
{ 
    Account *account = [[Account alloc] init]; 
    account.email = [emailField text]; 
    account.password = [passwordField text]; 

    [[RKObjectManager sharedManager] postObject:account delegate:self]; 
} 

LOG

/// ---> FIRST CLICK 
2012-05-25 14:57:00.028 HerokuApp[11154:fb03] API_KEY: 1234567890 
/// ---> SECOND CLICK 
2012-05-25 14:57:03.427 HerokuApp[11154:fb03] W restkit.network:RKObjectLoader.m:281 Unable to find parser for MIME Type 'text/html' 
2012-05-25 14:57:03.427 HerokuApp[11154:fb03] W restkit.network:RKObjectLoader.m:309 Encountered unexpected response with status code: 200 (MIME Type: text/html -> URL: https://api.heroku.com/login -- https://api.heroku.com -- https://api.heroku.com -- https://api.heroku.com) 
2012-05-25 14:57:03.429 HerokuApp[11154:fb03] didFailWithError: Error Domain=org.restkit.RestKit.ErrorDomain Code=4 "The operation couldn’t be completed. (org.restkit.RestKit.ErrorDomain error 4.)" 

Может кто-нибудь помочь мне объяснить, почему такое поведение occu кольцо?

+1

Распечатка описания ошибки может быть полезна. 'NSLog (@" didFailWithError:% @ ", ошибка);' – Kreiri

+0

@ Kreiri обновил мое сообщение с новым выходом журнала –

ответ

1

Возможно, API ведет себя по-разному, когда вы входите в систему. Из сообщений журнала появляется обратное содержимое text/html, а не то, что RestKit знает, как с этим бороться.

Запуск в симуляторе на машине, где Wireshark захватывает пакеты. Воспроизведите ошибку, затем найдите поток TCP, где это происходит, и посмотрите на него. Если вам нужна помощь, обновите свой вопрос с помощью результата «Follow Stream» в Wireshark, чтобы мы могли видеть полный HTTP-трафик.

Смежные вопросы