2016-11-10 2 views

답변

0

, 당신이 Magic Number

을 그래서 얻어야한다 : 내용 - 인코딩은 GZIP 파일을 반환하는 경우

내가 확인하는 시험 방법을 작성하려면

var magicNumber = [UInt](count: 4, repeatedValue: 0) 
data.getBytes(&magicNumber, length: 4 * sizeof(UInt)) 

GZipped 인 경우 1f 8b의 마법 번호를 가지므로이를 확인하십시오.

3

당신은 HTTPURLResponse의 헤더 필드에서이 정보를 얻을 수 있습니다 :이 헤더 데이터를 다운로드하는 것이

URLSession.shared.dataTask(with: url) { (data, response, error) in 
    if let response = response as? HTTPURLResponse { 
     if let encoding = response.allHeaderFields["Content-Encoding"] as? String { 
      print(encoding) 
      print(encoding == "gzip") 
     } 
    } 
}.resume() 

참고.

는 데이터 만 다운로드하지 않고 헤더를 얻고 싶다면

는, 더 나은 솔루션은 다음과 같이 "HEAD"URLRequest 세트를 사용하는 것입니다

var request = URLRequest(url: url) 
request.httpMethod = "HEAD" 

URLSession.shared.dataTask(with: request) { (_, response, _) in 
    if let response = response as? HTTPURLResponse { 
     if let enc = response.allHeaderFields["Content-Encoding"] as? String { 
      print(enc) 
      print(enc == "gzip") 
     } 
    } 
}.resume() 

이 방법 만 헤더가 다운로드됩니다.