- consuming restful web service in iOS 5
- #import <RestKit/RestKit.h>
- @interface MonitorViewController : UIViewController <RKRequestDelegate>
- RKClient* client = [RKClient clientWithBaseURL:@"http://192.168.2.3:8000/DataRecorder/ExternalControl"];
- NSLog(@"I am your RKClient singleton : %@", [RKClient sharedClient]);
- [client get:@"/json/get_Signals" delegate:self];
- - (void) request: (RKRequest *) request didLoadResponse: (RKResponse *) response {
- if ([request isGET]) {
- NSLog (@"Retrieved : %@", [response bodyAsString]);
- }
- }
- - (void) request:(RKRequest *)request didFailLoadWithError:(NSError *)error
- {
- NSLog (@"Retrieved an error");
- }
- - (void) requestDidTimeout:(RKRequest *)request
- {
- NSLog(@"Did receive timeout");
- }
- - (void) request:(RKRequest *)request didReceivedData:(NSInteger)bytesReceived totalBytesReceived:(NSInteger)totalBytesReceived totalBytesExectedToReceive:(NSInteger)totalBytesExpectedToReceive
- {
- NSLog(@"Did receive data");
- }
- // create the parameters dictionary for the params that you want to send with the request
- NSDictionary* paramsDictionary = [NSDictionary dictionaryWithObjectsAndKeys: @"00003",@"SignalId", nil];
- // send your request
- RKRequest* req = [client post:@"your/resource/path" params:paramsDictionary delegate:self];
- // set the userData property, it can be any object
- [req setUserData:@"SignalId = 00003"];
- - (void)request:(RKRequest *)request didLoadResponse:(RKResponse *)response {
- // check which request is responsible for the response
- // to achieve this, you can do two things
- // check the parameters of the request like this
- NSLog(@"%@", [request URL]); // this will print your request url with the parameters
- // something like http://myamazingrestservice.org/resource/path?SignalId=00003
- // the second option will work if your request is not a GET request
- NSLog(@"%@", request.params); // this will print paramsDictionary
- // or you can get it from userData if you decide to go this way
- NSString* myData = [request userData];
- NSLog(@"%@", myData); // this will log "SignalId = 00003" in the debugger console
- }