JSON-RPC WebServiceからデータを取得する方法:iPad / iPhone / Objective C
-
11-10-2019 - |
質問
私はiPadプロジェクトに取り組んでいますが、このプロジェクトはJSON-RPCウェブサービスと話す必要があります。ウェブサービスは、モジュールを備えたDrupal:CCKとビューに基づいています
1)JSONオブジェクトをWebサービスに押し込む必要があります2)WebServiceからのコールバックデータが必要です
私はすでにSBJSON APIとを実装しています https://github.com/samuraisam/deferredkit/ iPadプロジェクトへのAPI。
SBJSON APIは正常に動作します。
私の質問は、このJSON-RPC Webサービスからデータを取得する方法です。誰かにサンプルコードがありますか?または、客観的なC -JSON -RPC Webサービスドキュメントを見つけることができる場所。
敬具、
バートスクーン
- - - - -アップデート - - - -
私は今このコードを使用しています:
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"}
- - - - -/アップデート - - - -
なにが問題ですか?誰かがこれを経験しましたか?
敬具、
バートスクーン
解決 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];キーとバリューのペアが得られます。そのデータをそれぞれの変数に保存します。
所属していません StackOverflow