2012-04-18 6 views
0

나는 이것을 지금까지 만들었다. http 헤더로 json String 요청을하는 코드입니다. 이 코드를 실행할 때 오류가 발생하지 않습니다. 하지만 Expression results unused warning을 받는다. 이 http 헤더를 보낸 후 웹 서비스에서 응답을 받아야합니다.웹 서비스 응답 데이터 받기

코드 :

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    NSString *nid = @""; 
    NSString *vocab = @""; 
    NSString *inturl = @"testoverview"; 
    NSString *mail = @"[email protected]"; 
    NSString *md5pw = @"4d57e7ef1b7c3f431aca424764e9d786"; 

    NSDictionary *jsonDictionary = [NSDictionary dictionaryWithObjectsAndKeys: 
            nid, @"nid", 
            vocab, @"vocab", 
            inturl, @"inturl", 
            mail, @"mail", 
            md5pw, @"md5pw",nil]; 
    NSError *error; 
    NSData *jsonData = [NSJSONSerialization dataWithJSONObject:jsonDictionary options:NSJSONWritingPrettyPrinted error:&error]; 
    NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]; 

    if (!jsonData) { 
     NSLog(@"Got an error; %@", error); 
      } else if(jsonData) { 

       NSString *url = @"http://www.taenk.dk/services/mobile"; 
       NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:url] cachePolicy:NSURLCacheStorageAllowed timeoutInterval:30.0]; 

       [request setValue:jsonString forHTTPHeaderField:@"X-FBR-App"]; 
       [[NSURLConnection alloc] initWithRequest:request delegate:self]; <-- this line triggers the warning: "Expression result unused" 

       NSLog(@"jsonString %@", jsonString); 

      } 

사람이 나를 위해이 일을 명확히 수 :

  1. 웹 서비스에 대한 요청 즉시이 트리거 응답을합니까?
  2. 그렇다면이 결과를 어떻게 출력합니까?

답변

1

당신은 그럼 당신은 적어도 대리자 메서드 connection:didFailWithError:를 구현해야합니다 (예를 들어, [con cancel];) 나중에 사용하기 위해

NSURLConnection *con = [[NSURLConnection alloc] initWithRequest:... 

같은 변수에 결과를 할당해야합니다. 클래스 참조에서 나는 더 이상 connection:didFinishLoading...을 볼 수 없습니다. 대신 sendSynchronousRequest:returningResponse:error:을 사용할 수 있습니다. 그러면 결과가 긍정적이거나 부정적이 될 것입니다.

내가 (이 버전은 ARC없이) 데이터를 검색하는 방법입니다

- (void) connection :(NSURLConnection *)conn didReceiveData :(NSData *)data { 
    NSString *msg = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding]; 
    [self checkAutoMailReply:msg]; 
    [msg release]; 
} 

msg 순수 응답 데이터, 헤더 또는이 포함되어 있습니다.

+0

더 자세히 설명해 주실 수 있습니까? 나는 Objective-C에서 새로운 사람이다. 이 비동기 접근 방식을 사용하여 메신저, 및 대리자 메서드를 구현하고 일부를 사용하여. 것은, 매개 변수로 nsdata 걸리는 didRevieveData 메서드가 있습니다. 문제는 내가 서비스에 보내는 요청에서 응답 데이터를받는 방법을 모른다는 것입니다. 기본적으로 응답을 인쇄하는 방법을 모른 채 서비스 요청을 보내고 있습니다. – Lahib

+0

@Lahib 내 답장을 편집했습니다. 도움이되기를 바랍니다. –