2

リクエストにパラメータを添付できません。何が間違っているのでしょうか。Paramsは辞書であり、endStringはsharedClientbaseURLに追加されます。

[[RKClient sharedClient] get:endString usingBlock:^(RKRequest *loader){
    loader.params = [RKParams paramsWithDictionary:params];
    loader.onDidLoadResponse = ^(RKResponse *response) {

        [self parseJSONDictFromResponse:response];
    };


    loader.onDidFailLoadWithError = ^(NSError *error) {
        NSLog(@"error2:%@",error);
    };
}];

このエラーが発生します:RestKit was asked to retransmit a new body stream for a request. Possible connection error or authentication challenge?

4

1 に答える 1

0

あなたは正しい軌道に乗っていると思います。以下は、ここで見つけた実際の例からのもので、ページの約2/3です。別のオプションとして、params を URL に直接追加することもできます。それが実現可能かどうかはわかりませんが、パラメーターが単純な場合は可能かもしれません。

- (void)authenticateWithLogin:(NSString *)login password:(NSString *)password onLoad:(RKRequestDidLoadResponseBlock)loadBlock onFail:(RKRequestDidFailLoadWithErrorBlock)failBlock
{
    [[RKClient sharedClient] post:@"/login" usingBlock:^(RKRequest *request) {
        request.params = [NSDictionary dictionaryWithKeysAndObjects:
                          @"employee[email]", login,
                          @"employee[password]", password,
                          nil];
        request.onDidLoadResponse = ^(RKResponse *response) {

            id parsedResponse = [response parsedBody:NULL];
            NSString *token = [parsedResponse valueForKey:@"authentication_token"];
            //NSLog(@"response: [%@] %@", [parsedResponse class], parsedResponse);

            if (token.length > 0) {
                NSLog(@"response status: %d, token: %@", response.statusCode, token);
                [[RKClient sharedClient] setValue:token forHTTPHeaderField:@"X-Rabatme-Auth-Token"];

                if (loadBlock) loadBlock(response);
            }

            [self fireErrorBlock:failBlock onErrorInResponse:response];
        };
        request.onDidFailLoadWithError = failBlock;
    }];
}

この SO の質問もご覧ください: RestKit GET query parameters

于 2012-08-29T20:54:18.813 に答える