2012-08-29 32 views
2

它不會讓我在請求中附加參數,我做錯了什麼? Params是一個字典,endString添加到sharedClient baseURL。Restkit獲取帶有共享客戶端的參數和阻止

[[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?

回答

0

我認爲你是在正確的軌道上。下面是一個工作示例,我發現here,大約是頁面下方的2/3。另一個選項可能是將參數直接附加到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

相關問題