3

さて、私は一日中デバッグしてきましたが、私のコードの問題が何であるかを理解することができません。

目標は、RestKitを使用したPOSTをユーザー名/パスワードを使用してHeroku APIに送信し、APIキーを取得することです。

問題は、リクエストを送信できるのは1回だけであるということです。2回目にリクエストを送信すると、エラーが発生します。(つまり、最初はAPIキーをオブジェクトにバインドしますが、2回目はエラーになります)

現在のバージョンの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];
}

ログ

/// ---> 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.)"

誰かがこの動作が発生している理由を説明するのを手伝ってもらえますか?

4

1 に答える 1

1

おそらく、ログインしたときのAPIの動作は異なります。ログメッセージから、APIはtext / htmlコンテンツを返しているように見えますが、RestKitが処理方法を知っているものではありません。

Wiresharkがパケットをキャプチャしているマシンのシミュレータで実行します。エラーを再現してから、これが発生しているTCPストリームを見つけて、それを確認します。ヘルプが必要な場合は、Wiresharkの「FollowStream」の結果で質問を更新して、完全なHTTPトラフィックを確認できるようにしてください。

于 2012-05-25T13:40:04.943 に答える