4

私はiPadプロジェクトに取り組んでおり、このプロジェクトはjson-rpcWebサービスと通信する必要があります。Webサービスは、モジュール:cckおよびビューを備えたDrupalに基づいています。

1)jsonオブジェクトをWebサービスにプッシュする必要があります2)Webサービスからのコールバックデータが必要です

私はすでにSBJSONAPIとhttps://github.com/samuraisam/DeferredKit/apiをiPadプロジェクトに実装しています。

SBJSON APIは正常に動作し、これを理解しています。SamuriaisamDefferedKitは私にとって新しいものです。

私の質問は、このjson-rpc Webサービスからデータを取得する方法ですが、誰かにサンプルコードがありますか?または、ObjectiveCを見つけることができるいくつかの場所-json-rpcWebサービスのドキュメント。

敬具、

バートスクーン

- - - - -アップデート - - - -

私は今このコードを使用しています:

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"}

- - - - -/アップデート - - - -

なにが問題ですか?誰かがこれを経験したことがありますか?

敬具、

バートスクーン

4

2 に答える 2

1

JSON ファイルを読み取り、そのデータを取得します。

NSDictionary *dictionary = [jsonString JSONValue]; キーと値のペアを取得します。そのデータをそれぞれの変数に保存します。

于 2010-12-20T10:13:36.073 に答える
0
   -(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 メソッドです ;)

于 2011-01-05T08:32:54.810 に答える