2012-12-01 2 views
0

IOS Facebook SDK에서 제공 한 Facebook 사용자를 나타내는 NSData 객체가 있습니다. 이 개체는 JSON 형식이며 서버 응용 프로그램에 게시하려고 시도하고 있습니다. 아래는 HTTP Post를 실행하기위한 나의 Objective C 코드이다. 이 코드의 문제점은 요청 본문이 서버에서 비어 있다는 것입니다. 누군가 내가 잘못한 것을 발견 할 수 있습니까?이 HTTP 게시물의 본문이 null 인 이유는 무엇입니까?

-(void)postUserDataToServer:(NSString *) user { 

// Convert the JSON string to Data to be sent. 

NSMutableURLRequest* request = [[NSMutableURLRequest alloc] init]; 
[request setURL:[NSURL URLWithString:@"http://ec2-whatever.compute-1.amazonaws.com:3000/user"]]; 
[request setHTTPMethod:@"POST"]; 
[request setValue:[NSString stringWithFormat:@"%d", [user length]] forHTTPHeaderField:@"Content-Length"]; 
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"]; 
[request setHTTPBody:user]; 
[NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil]; 

} 

답변

3

음 ... 사용자가 NSData가 아닙니다! 당신은 문자열을 데이터로 변환해야합니다.

assert(user.length); 
id bodyData = [user dataUsingEncoding:NSUTF8StringEncoding]; 
request.HTTPBody = bodyData; 
+1

btw : 대답은 아니지만 권장 사항 : 동기 네트워킹을하지 마십시오 –

+0

감사합니다. 왜 길이 표명이 실패했는지 아는가? – hughesdan

+0

아니요, 코드가 어디서 init 사용자인지 또는 무엇이되어야하는지 표시하지 않습니다. –

관련 문제