1

RestKitを使用して同期リクエストを行うにはどうすればよいですか?

私は以前このように使用しました(SBJSON):

UIDevice *myDevice = [UIDevice currentDevice];

    NSString *deviceUDID = [myDevice uniqueIdentifier];

    double v = [[[UIDevice currentDevice] systemVersion]doubleValue]; 
    NSString *version=[NSString stringWithFormat:@"%@ %.1f",deviceType,v];
    NSString *encodedParam1 =[version stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

    NSString *requestString = [NSString stringWithFormat:@"method=views.get&view_name=client_list",nil];

    NSData *requestData = [NSData dataWithBytes: [requestString UTF8String] length: [requestString length]];

    NSString *urlString = [NSString stringWithFormat:@"http://localhost/index.php?oper=StoreDeviceId&device_id=%@&device_version=%@",deviceUDID,encodedParam1];

    NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:urlString]];

    [request setHTTPMethod: @"POST"];

    [request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];

    [request setHTTPBody: requestData];

    //Data returned by WebService

    NSData *returnData = [NSURLConnection sendSynchronousRequest: request returningResponse: nil error: nil ];

    [request release];

    NSString *returnString = [[NSString alloc] initWithData:returnData encoding: NSUTF8StringEncoding];

    NSDictionary *dict1 = [returnString JSONValue]; 

同じ操作で、restkitフレームワークを使用して処理する方法。

事前の感謝

4

2 に答える 2

1

RKClient を使用した同期投稿の例を次に示します。

//Configure RKLog
RKLogConfigureByName("RestKit/Network", RKLogLevelTrace);

//Set Client
RKClient *client = [RKClient clientWithBaseURLString:@"some_base_url"];

//Params to be send
NSDictionary *queryParameters = [NSDictionary dictionaryWithObjectsAndKeys:@"1",@"first_value",@"2",@"second_value",nil];

//Prepare the request and send it
RKRequest *request = [client post:@"path" params:queryParameters delegate:nil];
RKResponse *response = [request sendSynchronously];

//Process the response
NSString *stringResponse = [[NSString alloc] initWithData:[response body] encoding: NSUTF8StringEncoding];
NSDictionary *dict1 = [stringResponse JSONValue];

しかし、代わりにブロックを使用した非同期呼び出しを使用することをお勧めします!.

于 2012-08-29T13:57:30.607 に答える
0

RestKit を使用して同期リクエストを行うには、通常どおりインスタンスをセットアップした後、RKRequestのメソッドを使用します。-sendSynchronouslyRKRequest

于 2012-08-28T07:40:54.110 に答える