2

我正在将 JSON 从我的 iPhone 应用程序发送到我的服务器,该服务器是 Play Framework 的 Java 应用程序并部署在 Heroku Cloud 上。

这是我在我的应用程序中使用的代码。

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