2

iPhoneアプリからPlayFrameworkのJavaアプリであり、HerokuCloudにデプロイされているサーバーにJSONを送信しています。

これが私のアプリで使用しているコードです。

self.url = [NSURL URLWithString:@"http://myURL.herokuapp.com/check/"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];


NSDictionary *dict = [[NSDictionary alloc]initWithObjects:[NSArray arrayWithObjects:@"Rajesh", @"pass", nil] forKeys:[NSArray arrayWithObjects:@"username", @"password", nil]];
NSString *jsonString = [dict JSONRepresentation];

NSLog(@"%@", jsonString);

NSData *data = [jsonString dataUsingEncoding:NSUTF8StringEncoding];
NSLog(@"%@", data.description);

[request setHTTPMethod:@"POST"];
[request setHTTPBody:data];

NSURLConnection *conn = [[NSURLConnection alloc] initWithRequest:request delegate:self startImmediately:YES];
if(conn)
{
    self.receivedData = [[NSMutableData alloc]init];
    NSLog(@"%@", @"connection started");
}

これで、utf-8エンコーディングを使用してjsonStringをNSDataにエンコードしました。サーバー側でデコードする方法は?

奇妙な問題は、を使用してボディをフェッチしようとするとrequest.body().toString()、次の出力が得られることです。

DefaultRequestBody(Some(Map()),None,None,None,None,None,false)

Androidアプリから同じ種類のリクエストを行ったとき、request().body().asJson()メソッドを使用してさらに使用したJSONを取得しましたが、iOSでは、サーバーに送信する前にJsonをNSDataに変換しているため、どのようにすべきかについて少し混乱しています。サーバー側でデコードします。

4

0 に答える 0