2011-11-07 55 views
0

我正在执行此代码至少拿苹果从当前交易的应用程序购买收据(此处未列出)我将它转换为base64 NSData对象,创建新的NSString与值和键(json对象)并将其发送给低谷NSUrlconnection。 当编译器命中init请求时,应用程序崩溃后2 seconeds ... 而没有得到任何回应。这是代码。无法发送Json与NSUrlconnection

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

这是因为这一行代码:

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

试图setHTTPBody一些格式化的NSString,当方法实际上是期望的NSData。

只需使用:

[request setHTTPBody: requestdata]; 

,看看是否有更好的效果。

+0

伟大的我会接受它! 你有什么想法我该如何阅读回应? 这是什么日志打印[响应描述] –

+0

看看[Apple文档NSHTTPURLResponse](http://developer.apple.com/library/ios/#documentation/Cocoa/Reference/Foundation /Classes/NSHTTPURLResponse_Class/Reference/Reference.html),你会看到你如何访问它的部分。 –