2011-11-07 2 views
0

현재 코드 (여기에 나열되지 않음)에서 앱 구매 영수증을 가져 와서 base64 NSData 개체로 변환하는 코드를 구현합니다. 값 및 키가있는 NSString을 새로 만듭니다 (json 개체) 그리고 물통 NSUrlconnection을 보냅니다. 컴파일러가 요청과 함께 init에 부딪 힐 때 앱은 2 초 후에 ... 응답을받지 않고 응용 프로그램이 충돌합니다. 이것은 코드입니다.NSUrlconnection을 사용하여 Json을 전송하지 못했습니다.

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에게 새로운 것이므로 문제가 될 수도있다.

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

방법이 실제로있는 NSData를 기대하고있다 서식이있는 NSString에 setHTTPBody 려 : 코드에서이 행이 있기 때문이다

답변

1

.

[request setHTTPBody: requestdata]; 

을 그리고 당신은 더 나은 결과가 있는지 확인 :

그냥 사용합니다.

+0

나는 그것을 받아 들일 것이다! 응답을 어떻게 읽을 수 있습니까? 로그가 출력하는 내용 [응답 설명] –

+0

[NSHTTPURLResponse의 Apple 설명서] (http://developer.apple.com/library/ios/#documentation/Cocoa/Reference/Foundation)를 확인하십시오. /Classes/NSHTTPURLResponse_Class/Reference/Reference.html) 당신은 어떻게 그것들에 접근 할 수 있는지 보게 될 것이다. –

관련 문제