2012-04-23 4 views
0

내 응용 프로그램에서는 불행한 MIME 형식의 응용 프로그램/강제 다운로드를 처리해야합니다. NSURLConnection이 직접 링크 (e.x. http://blah.com/something.zip)가 주어지면 파일을 다운로드 할 수 있다는 사실을 알고 있지만 PHP 파일이 될 http://blah.com/download.php?id=123과 같은 URL에서 성공/정보를 찾을 수있는 곳이 없습니다. 웹 브라우저는이 기능을 확실히 실행할 수 있지만 Cocoa 라이브러리를 사용하면 어떻게 가능할 것입니까? 모든 제안/지침은 분명히 인정 될 것입니다.코코아 - 응용 프로그램/강제 다운로드 및 NSURLConnection

감사합니다.

답변

1

당신은 당신의 NSURLConnection 객체의 대리자를 구현해야하고, 그 위임에이 방법을 구현 :

다음 NSURLReponse 인수에서

- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response; 

, 당신은 MIME 유형 및 제안 된 파일 이름을 얻을 수 있습니다

NSString* type = [response MIMEType]; 
NSString* fileName = [response suggestedFilename]; 

MIME 형식이 application/download 인 경우에는 위임을 통해받은 NSData을 디스크에 저장하고 적절한 파일 이름으로 디스크에 저장하는 등 앱을 작성해야합니다.

+0

본질적으로 데이터 수신 방법에는 차이가 없습니다. http://blah.com/download.php?id=123과 같은 URL로 NSURLRequest를 설정하여 NSURLConnection을 시작할 때 NSURLConnection을 설정할 수 있어야합니다. 연결을 통해 데이터를 수신 - (void) connection : (NSURLConnection *) connection didReceiveData : (NSData *) data; – uhelios

+0

물론, MIME 형식은 사용자 에이전트가 콘텐츠를 어떻게 처리해야하는지에 대한 힌트 일뿐입니다. –

+0

설명해 주셔서 감사합니다! – uhelios