2011-09-21 6 views
2

post 메서드로 xmlparsing에 문제가 있습니다. 이제xml Post 메서드 + iphone으로 구문 분석

API URL : http://XXX.XXX.X.XX/api/user.php 
Function Name : getUserList 
Sample XML : 
<root> 
    <data> 
     <id>0</id> 
     <search></search> 
    </data> 
</root> 

내가 사용하고 있습니다 : -

// setting up the URL to post to 
NSString *urlString = @"http://XXX.XXX.X.XX/api/user.php"; 

// setting up the request object now 
NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease]; 
[request setURL:[NSURL URLWithString:urlString]]; 
[request setHTTPMethod:@"POST"];   

하지만 어떻게 내가이있는 포스트에서는 HTMLBody 부분을 확인해야합니다 ..

수단 어디서 난 기능 이름과 샘플 XML에 넣어하는 방법 코드

내 편집 질문입니다 : -

NSString *urlString = @" http://192.168.6.79/silverAPI/api/user.php/getUserList"; 

    // setting up the request object now 
    NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease]; 
    [request setURL:[NSURL URLWithString:urlString]]; 
    [request setHTTPMethod:@"POST"]; 
    NSString * str = @"<root><data><id>0</id><search>a</search></data></root>"; 
    NSString * message= [NSString stringWithFormat:@"/getUserList mydata=%@", str]; 
    [request setHTTPBody:[message dataUsingEncoding:NSUTF8StringEncoding]]; 
    [request addValue:@"application/xml; charset=utf-8" forHTTPHeaderField:@"Content-Type"]; 





    // now lets make the connection to the web 
    NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil]; 
    NSString *returnString = [[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding]; 

    NSLog(@"Responce==>%@",returnString); 

하지만 responce.Pleaseee 검은 나를 도와 받고 .. 내

NSString *urlString = @" http://192.168.6.79/silverAPI/api/user.php/getUserList"; 

그리고

NSString * str = @"0a"; NSString * message= [NSString stringWithFormat:@"/getUserList mydata=%@", str]; [request setHTTPBody:[message dataUsingEncoding:NSUTF8StringEncoding]]; [request addValue:@"application/xml; charset=utf-8" forHTTPHeaderField:@"Content-Type"];

코드의이 부분은 정확하다?

답변

1

- (void)setHTTPBody:(NSData *)data을 사용하여 html 본문을 설정할 수 있습니다. 예 :

[request setHTTPBody:[message dataUsingEncoding:NSUTF8StringEncoding]]; 

여기서 메시지는 귀하의 경우 xml입니다.

[request addValue:@"application/xml; charset=utf-8" forHTTPHeaderField:@"Content-Type"]; 

을 당신이 방법 - (void)setValue:(NSString *)value forHTTPHeaderField:(NSString *)field을 사용할 수 있습니다 귀하의 요청에 몇 가지 추가 플래그를 설정하려면 :

은 또한 당신은 전송되는 데이터의 유형을 결정하기 위해 서버를 돕기 위해이 코드를 추가해야합니다.

+0

답장을 보내 주셔서 감사합니다. 응답 데이터를 어떻게 받아야합니까? 내가 올바른지 여부를 알려주십시오. -NSData * returnData = [NSURLConnection sendSynchronousRequest : requestResponse : nil error :무]; \t NSString * returnString = [[NSString alloc] initWithData : returnData 인코딩 : NSUTF8StringEncoding]; –

+1

괜찮아 보이는데 응답하는 코드를 확인하고 싶지 않은 이유는 무엇입니까? = 데이터 를 메시지 = @ "getUserList로 * -NSString : – Nekto

+0

나는 한 응답 및 help.my 요청에 대한 감사 @Nikto –

0

당신이 한 일은 완벽합니다. 같은 요청을 보내서 응답이 제대로 오는지 여부를 서버 측에서 확인하십시오.