Не удалось отправить Json с NSUrlconnection - PullRequest
0 голосов
/ 07 ноября 2011

Я реализую этот код, который принимает Apple в квитанции о покупке приложения из текущей транзакции (здесь нет в списке), я конвертирую ее в объект base64 NSData, создаю новый NSString со значениями и ключами (объект json) отправить его через NSUrlconnection. когда компилятор нажимает init с запросом, приложение вылетает через 2 секунды ... без какого-либо ответа. это код.

    NSData *data = [NSData dataFromBase64String:receiptStr];
NSString *jsonString = [NSString stringWithFormat:@"{\"receipt-data\":\"(%@)\",\"password\":\"(%@)\"}", data, SHARED_SECRET];
NSLog(@"%@",jsonString);
savedReceipt = jsonString;
[[NSUserDefaults standardUserDefaults]setValue:savedReceipt forKey:@"savedrecipt"];
[[NSUserDefaults standardUserDefaults]synchronize];
NSData *requestdata = [jsonString dataUsingEncoding:NSUTF8StringEncoding];    //urlData = [[NSMutableData data] retain];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"https://sandbox.itunes.apple.com/verifyReceipt"]];
[request setHTTPMethod:@"POST"];
[request setHTTPBody:[NSString stringWithFormat:@"%@",requestdata]];
[[NSURLConnection alloc] initWithRequest:request delegate:self];

У кого-нибудь есть идея, что я делаю не так? Я также новичок в JSON, так что это может быть проблемой там.

1 Ответ

1 голос
/ 07 ноября 2011

Это потому, что эта строка в вашем коде:

[request setHTTPBody:[NSString stringWithFormat:@"%@",requestdata]];

Пытается установить HTTPBody в некоторый форматированный NSString, когда метод фактически ожидает NSData.

Просто используйте:

[request setHTTPBody: requestdata];

И посмотри, есть ли у тебя лучшие результаты.

...