2013-12-13 1 views
1

안녕하세요, JSON 개체 내에 XML 데이터를 게시하고 싶습니다. NSURLConnection의 Json 객체 내에 xml을 게시하는 방법은 무엇입니까?

내가 connectionDidFinishLoading _responseData에서

[request setValue:@"application/json" forHTTPHeaderField:@"Accept"]; 
NSString *postString = [NSString stringWithFormat:@"{\"UserId\":\"%@\",\"UserDataXML\":\"%@\"}",@"USRfa9210bad85165d5",@"<Root Bookmark=\"Page1\">\\u000d\\u000a <Name>MyName<\Name>\\u000d\\u000a <Address>MyAddress<\ Address></Root>"]; 
NSData *requestData = [postString dataUsingEncoding:NSUTF8StringEncoding]; 
[request setHTTPMethod:@"POST"]; 
[request setValue:@"application/xml; charset=utf-8" forHTTPHeaderField:@"Content-Type"]; 
[request setValue:[NSString stringWithFormat:@"%d", [requestData length]] forHTTPHeaderField:@"Content-length"]; 
[request setHTTPBody:requestData]; 

와서 게시 방법이지만, responsedict는 널지고 있습니다. 내가 어디로 가고 있니?

- (void)connectionDidFinishLoading:(NSURLConnection *)connection 
{  
     NSLog(@"_responseData %@",_responseData); 
     NSString *responseString = [[NSString alloc] initWithData:_responseData encoding:NSUTF8StringEncoding]; 
     NSError *error; 
     NSData *jsonData = [responseString dataUsingEncoding:NSUTF8StringEncoding]; 
     NSDictionary *responseDict = [NSJSONSerialization JSONObjectWithData:jsonData options:0 error:&error]; 
     NSLog(@"responseDict %@",responseDict); 
} 

답변

0

먼저 JSON을 이스케이프 처리해야합니다.

그리고,

서버에만 폼 데이터에 대응되는 경우 (1), 포스트 데이터 및 키 값의 쌍이어야한다.

NSString *postString = [NSString stringWithFormat:@"UserId=%@&UserDataXML=%@", 
    @"USRfa9210bad85165d5", 
    @"<Root Bookmark=\\\"Page1\\\">\\u000d\\u000a<Name>MyName</Name>\\u000d\\u000a<Address>MyAddress</Address></Root>"]; 

(2) 서버는 JSON으로 응답 한 경우, 콘텐츠 형식이 "응용 프로그램/JSON"로 설정해야하고,

NSString *postString = [NSString stringWithFormat:@"{\"UserId\":\"%@\", \"UserDataXML\":\"%@\"}", 
    @"USRfa9210bad85165d5", 
    @"<Root Bookmark=\\\"Page1\\\">\\u000d\\u000a<Name>MyName</Name>\\u000d\\u000a<Address>MyAddress</Address></Root>"]; 

BTW, 당신이 변수를 '확인이 _responseData '? 나는 그것이 또한 비어 있다고 생각한다.