我正在从事一个iPad项目,该项目需要与JSON-RPC WebServices进行交谈。 Web服务基于带有模块的Drupal:CCK和视图

1)我需要将JSON对象推入Web服务2)我需要从WebService的回调数据

我已经实现了SBJSON API和 https://github.com/samuraisam/deferredkit/ iPad项目的API。

SBJSON API正常工作,我知道这是Samuriaisam DefferedKit对我来说是新的

我的问题是如何从此JSON-RPC Web服务中获取数据,有人是否有一些示例代码?或我可以找到目标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)

有帮助吗?

解决方案 2

   -(IBAction)testCall{
     NSString *requestString = [NSString stringWithFormat:@"method=views.get&view_name=client_list",nil];
     NSLog(requestString);


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


     NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL: [NSURL URLWithString: @"http://.xxxxxxxxx.nl/services/json"]];

     NSString *postLength = [NSString stringWithFormat:@"%d", [requestData length]];
     [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 ];
     NSString *returnString = [[NSString alloc] initWithData:returnData encoding: NSUTF8StringEncoding];

     NSLog(returnString);
     NSDictionary *dict = [returnString JSONValue];

    }

只是不要使用JSON -RPC-保持简单,而JSON正常JSON方法;)

其他提示

阅读JSON文件获取该数据。

nsdictionary *dictionary = [jsonstring jsonvalue];您将获得钥匙和价值对。将这些数据存储在您各自的变量中。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top