2010-04-02 4 views
4

서버에 대한 게시물 인 NSURLConnection이 있는데 성공했는지 여부에 관계없이 일부 작은 데이터를 반환 할 것으로 예상됩니다. 나는 조금 혼란 스러워요 ...NSURLConnection POST도 동일한 URL의 GET을 호출합니다.

 -(void)submitPost:(NSString *)xml 
    { 
     NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[service generateURL]]; 
     NSString *result = (NSString *) CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, (CFStringRef)xml, NULL, CFSTR("?=&+"), kCFStringEncodingUTF8); 
     [request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"]; 
     [request setHTTPBody:[result dataUsingEncoding:NSUTF8StringEncoding]]; 
     [request setHTTPMethod:@"POST"]; 
     NSURLConnection *theConnection=[[NSURLConnection alloc] initWithRequest:request delegate:self]; 
     if(theConnection) 
     { 
      NSLog(@"Connection success"); 
      [UIApplication sharedApplication].networkActivityIndicatorVisible = YES; 
      [theConnection retain]; 
      failed = NO; 
     } 
     else 
     { 
      NSLog(@"Connection failed"); 
     } 
} 

, 그것은 포스트에게 URL을 보낼 않을뿐만 아니라, 그것은 또한 GET을 보내는 문제가되고 GET 응답은 데이터로 반환됩니다. 내 wireshark 출력을 확인했고, 확실히 포스트와 겟을 모두 만들고 있습니다.

너희들은 어떻게 생각하십니까?

+0

이미 연결 했으므로 Connection을 유지할 필요가없는 것으로 보입니다. – ma11hew28

답변

8

리디렉션을 통해 POST에 URL이 응답합니까? 이 경우 NSURLConnection 대리자 메서드 connection:willSendRequest:redirectResponse:을 구현하여 원하지 않는 리디렉션을 취소 할 수 있습니다.

+0

방금 ​​방금 그 방법을 구현했으며 호출 중입니다. 하지만 그게 무슨 뜻인지 모르겠다. 설명 할 수 있겠 니? 나는 문서를 정말로 이해하지 못한다. – kodai

+0

해당 메서드가 호출되면 응답은 리디렉션임을 의미합니다.이 메서드에 전달 된 NSURLRequest 매개 변수를 검사하여 리디렉션 대상을 확인할 수 있습니다. 리디렉션 URL에 대한 요청은보고있는 추가 GET입니다. 앱에서 리디렉션으로 인해 문제가 발생하는 경우이 위임 메서드에서 리디렉션을 취소하거나 수정할 수 있습니다. – dstnbrkr

관련 문제