0

私は奇妙な問題を抱えています...レールサーバーに対してAFNetworkingを使用してこのios http/json投稿を行っていますが、予想される出力は次のようなものです:

{"success":true,"auth_token":"4D8CyUsyGZdqo6X1TCeq"}

期待どおりに動作することもありますが、多くの場合、レール側ではリクエストが「JSON」リクエストとして検出されないため、HTML が提供されます。誰でもこれについて考えがありますか?JSON リクエストの設定に関して何か間違っていることはありますか?

 NSDictionary *parameter = @{@"email":@"philswenson@mymail.com", @"password":@"mypassword"};
    AFHTTPClient *httpClient = [[AFHTTPClient alloc] initWithBaseURL:[NSURL URLWithString:@"http://localhost:3000"]];
    [httpClient setParameterEncoding:AFJSONParameterEncoding];
    [httpClient registerHTTPOperationClass:[AFJSONRequestOperation class]];

    [httpClient postPath:@"api/v1/sessions" parameters:parameter success:^(AFHTTPRequestOperation *operation, id responseObject) {

        NSString *jsonString = [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding];

        NSLog(@"Here is what we got %@", jsonString);
        NSDictionary *loginResult = [jsonString objectFromJSONString];
        NSNumber* success = [loginResult objectForKey:@"success"];
        NSLog(@"success = %@", success);
        NSLog(@"yay");
        // sample output:
        //  {"success":true,"auth_token":"4D8CyUsyGZdqo6X1TCeq"}

    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
        [self handleConnectionError:error];
    }];
4

3 に答える 3

0

私は提案を試しました-サイコロはありません.... setDefaultHeader は実際にクラッシュを引き起こしました(アクセス違反のiOS用語が何であれ)...

"accept:application/jsonrequest"} には違いが見られませんでした...

私はこのコードを使用することになりました:

    NSDictionary *parameter = @{@"email" : @"phil@gmail.com", @"password" : @"mypw", @"format":@"json"};
于 2013-09-05T03:23:20.973 に答える
0

私のサービスでは、次のようにパラメーターに受け入れるための application/jsonrequest を追加する必要があることを知っています。

NSDictionary *parameter = @{@"email":@"philswenson@mymail.com", @"password":@"mypassword", @"accept:application/jsonrequest"};

AFJSONParameterEncoding は、JSON ファイルでパラメーターを送信するように指示するだけです。データを送り返す方法を伝えるためにパラメーターを送信する必要があります。

于 2013-09-04T05:08:29.037 に答える