2012-07-10 3 views
0

서버에서 데이터를 가져 오는 경우 다음 세부 정보가 있습니다. methodIdentifier 및 웹 서비스 이름은 무엇입니까?JSON 구문 분석, 서버에서 응답받는 방법

{"zip":"12345","methodIdentifier":"s_dealer"} 

url:- http://xxxxxxxxxxxxxxx.com/api.php 
method: post 
web service name: s_dealer 

response : {"success":"0","dealer":[info...]} 

나는 URL을 우편 번호 "12345"를 전송하는 방법을 모르겠어요. 올바른 방향으로 나를 안내해주세요. 나는 다음을 사용한다. 내가 콘솔의 응답을 인쇄 할 때

-(void)IconClicked:(NSString *)zipNumber 
{ 


NSString *post = [NSString stringWithFormat:@"&zipNumber=%@",zipNumber]; 



NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES]; 

NSString *postLength = [NSString stringWithFormat:@"%d",[postData length]]; 

NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease]; 

[request setURL:[NSURL URLWithString:[NSString stringWithFormat:@"http://xxxxxxxxxxxxxxxxxxx.com/api.php"]]]; 

[request setHTTPMethod:@"POST"]; 

[request setValue:postLength forHTTPHeaderField:@"Content-Length"]; 

[request setHTTPBody:postData]; 

NSURLConnection *conn = [[NSURLConnection alloc]initWithRequest:request delegate:self]; 

if(conn) 
{ 
    NSLog(@"Connection Successful"); 
} 
else 
{ 
    NSLog(@"Connection could not be made"); 
} 

    receivedData = [[NSMutableData alloc]init]; 


} 

:

답변

0

"문자열 \의 예기치 않은 종료"\ API에 대한 자세한 내용을 모른 채를, 당신의 요구 사항에 대해 확신 할 수는 없지만, 서버 보인다 JSON 포함 요청이 예상됩니다. 현재 요청에 대한 본문을 만드는 방법은 표준 POST 변수를 사용하는 것입니다.

NSString *post = [NSString stringWithFormat:@"&zipNumber=%@",zipNumber]; 

에 :

은 변경 시도 가지고

NSString *post = [NSString stringWithFormat:@"{\"zip\":\"%@\",\"methodIdentifier\":\"s_dealer\"}",zipNumber]; 

다른 질문에 대해서는, 나는 API에 대한 하나의 URL이 있음을 추측하고있어. methodidentifier은 실행할 서버 방법을 결정하기 위해 서버에서 사용됩니다.

0

응답으로 json이 없지만 구조가 다른 Apache에서 오류가 발생하여 json이 구문 분석 할 수 없기 때문에이 오류가 발생합니다. 성공적인 방법을 얻으려면 연결 방법을 시도해보십시오.

NSURLConnection 속성을 선언하고 합성합니다. 지금 :

NSString *post = [NSString stringWithFormat:@"zipNumber=%@",zipNumber]; 

    NSString *toServer = [NSString stringWithString:@"your server with the last slash character"]; 

    NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"%@api.php?", toServer]]; 
    NSData *postData = [post dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:NO]; 
    NSString *postLength = [NSString stringWithFormat:@"%d", [postData length]]; 
    NSMutableURLRequest *urlRequest = [[[NSMutableURLRequest alloc] init] autorelease]; 
    [urlRequest setURL:url]; 
    [urlRequest setHTTPMethod:@"POST"]; 
    [urlRequest setValue:postLength forHTTPHeaderField:@"Content-Length"]; 
    [urlRequest setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"]; 
    [urlRequest setValue:@"utf-8" forHTTPHeaderField:@"charset"]; 
    [urlRequest setHTTPBody:postData]; 
    [urlRequest setTimeoutInterval:30]; 

    NSURLConnection *tmpConn = [[[NSURLConnection alloc] initWithRequest:urlRequest delegate:self] autorelease]; 

    self.yourConnectionProperty = tmpConn; 

연결 위임자에서 self.yourConnectionProperty를 사용합니다. 건배!