无法使用 NSUrlconnection 发送 JSON

问题描述 投票:0回答:1

我正在实现此代码,该代码从当前交易中获取苹果在应用程序购买收据(此处未列出),我将其转换为base64

NSData
对象,使用值和键(json对象)创建新的
NSString
并将其发送通过
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 也很陌生,所以这也可能是一个问题。

iphone objective-c nsurlconnection nsurlrequest
1个回答
1
投票

那是因为你的代码中的这一行:

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

尝试将 HTTPBody 设置为某种格式化的 NSString,而该方法实际上需要 NSData。

只需使用:

[request setHTTPBody: requestdata];

看看你是否有更好的结果。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.