2012-05-01 69 views
0

後請求幫助我必須在iOS中訪問Rest api,我正在使用RestKit。服務器只接受POST請求並以JSON發送響應。只需幫助我使用RestKit調用登錄API。網址是這樣的:要求與RestKit

http://mobile.domian.co/apiversion/user/login

和郵政parametersare:

APP_KEY(串),簽名(串),時間戳(日期時間),USER_ID(串),密碼(字符串)。

可用響應申述

{ 
"status": "0", 
"result": { 
    "error_code": "1", 
    "error_msg": "Login failed. Wrong username or password" 
} 

{ 「狀態」: 「1」, 「結果」:{ 「數據」:{ 「阿凡達」: 「」, 「電子郵件」 :「[email protected]」, 「user_name」:「sd」, 「newsletter」:「1」, 「bio_data」:「關於我自己」, 「mth_dob」:「1」, 「 yr_dob「:」1981「, 」hometow N「: 」「, 」dob_priv「: 」1「, 」hometown_priv「: 」1「, 」bio_data_priv「: 」1「, ‘block_comment_notification’:」 0」 , ‘block_liked_notification’:」 0」 , }

請幫幫我。提前致謝。

回答

0

下面是答案(你應該將時間值轉換爲字符串): -

 NSString *post =[NSString stringWithFormat:@"app_key=%@&signature=%@&timestamp=%@&user_id=%@&password=%@",appKEY,Signature,Datetime,UID,Password]; 

    NSData *postData = [post dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES]; 

    NSString *postLength = [NSString stringWithFormat:@"%d", [postData length]]; 

    NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease]; 
    [request setURL:[NSURL URLWithString:@"Your URL"]]; 
    [request setHTTPMethod:@"POST"]; 
    [request setValue:postLength forHTTPHeaderField:@"Content-Length"]; 
    [request setValue:@"application/x-www-form-urlencoded charset=utf-8" forHTTPHeaderField:@"Content-Type"]; 
    [request setHTTPBody:postData]; 

    NSError *error; 
    NSURLResponse *response; 
    NSData *returnData=[NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error]; 
    if (error) 
{ 
    NSLog(@"Error is %@",[error localizedDescription]); 
} 

    returnString=[[NSString alloc]initWithData:returnData encoding:NSUTF8StringEncoding]; 
    if(!returnString) 
    { 
     UIAlertView *erroralert = [[UIAlertView alloc] initWithTitle:@"Error" message:@"There is an error getting response" delegate:self cancelButtonTitle:nil otherButtonTitles:@"OK", nil]; 
     [erroralert show]; 
     [erroralert release]; 
    } 
    else 
    { 
     NSLog(@"%@",returnString); 
    } 
    SBJSON *json = [[SBJSON new] autorelease]; 
    NSMutableDictionary *dic = [[NSMutableDictionary alloc] initWithDictionary:[json objectWithString:returnString error:nil]]; 
+0

感謝您的答覆。我使用了該代碼但不工作。 我應該在那裏調用委託方法嗎? – makboney

+0

它如何不工作意味着你沒有得到迴應?拼寫檢查參數符咒。參數必須與您在URL中調用的Web服務匹配。 – Dhawal

+0

嗨dh14-sl,我不知道那裏發生了什麼錯誤。如果我做了什麼錯誤,至少會有一些消息來自服務器。 NSData在這裏是0字節。 – makboney