我正在进行一个iPad项目,该项目需要与json-rpc web服务通信。该web服务基于Drupal,并使用模块:cck和views。
1)我需要将一个json对象推送到web服务中 2)我需要从web服务中获取回调数据
我已经实现了SBJSON API和https://github.com/samuraisam/DeferredKit/ API到iPad项目中。
SBJSON API工作正常,我也理解这个API。 Samuriaisam DefferedKit是新的,我不太了解。
我的问题是如何从这个json-rpc web服务中获取数据,有人有一些示例代码吗?或者一些可以找到Objective C - json-rpc web服务文档的地方。
此致敬礼,
Bart Schoon
---------更新--------
我现在使用这段代码:
这将导致从服务器返回以下消息:
1)我需要将一个json对象推送到web服务中 2)我需要从web服务中获取回调数据
我已经实现了SBJSON API和https://github.com/samuraisam/DeferredKit/ API到iPad项目中。
SBJSON API工作正常,我也理解这个API。 Samuriaisam DefferedKit是新的,我不太了解。
我的问题是如何从这个json-rpc web服务中获取数据,有人有一些示例代码吗?或者一些可以找到Objective C - json-rpc web服务文档的地方。
此致敬礼,
Bart Schoon
---------更新--------
我现在使用这段代码:
NSString *jsonString = @"{\"method\":\"views.get\",\"params\":{\"view_name\":\"client_list\",\"sessid\":\"xxxxxx\"},\"id\":1}";
NSString *requestString = [NSString stringWithFormat:@"%@",jsonString,nil];
NSLog(@"input: %@",jsonString);
NSData *requestData = [NSData dataWithBytes: [jsonString UTF8String] length: [jsonString length]];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL: [NSURL URLWithString:@"http://subdomain.domain.com/services/json-rpc"]];
NSString *postLength = [NSString stringWithFormat:@"%d", [requestData length]];
[request setHTTPMethod: @"POST"];
[request setValue:@"Content-type: application/json" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:requestData];
//Data returned by WebService
NSData *returnData = [NSURLConnection sendSynchronousRequest: request returningResponse: nil error: nil ];
NSString *returnString = [[NSString alloc] initWithData:returnData encoding: NSUTF8StringEncoding];
NSLog(@"output: %@",returnString);
这将导致从服务器返回以下消息:
{"error":{"name":"JSONRPCError","code":-32600,"message":"The received JSON not a valid JSON-RPC Request"},"version":"1.1"}
---------/更新--------
出了什么问题?有人有相关经验吗?
顺祝商祺,
Bart Schoon