我们可以为Alamofire文件下载添加自定义标头:IOS/SWIFT

Sas*_*shi 2 file download ios swift alamofire

我知道如何向alamofire请求添加自定义标头,但是可以在alamofire下载中添加自定义标头吗?另外,如何更改文件路径中保存的文件扩展名?

Alamofire.download(.GET, myURL, { (temporaryURL, response) in
      if let directoryURL = NSFileManager.defaultManager()
        .URLsForDirectory(.DocumentDirectory,
          inDomains: .UserDomainMask)[0]
        as? NSURL {
          let pathComponent = response.suggestedFilename

          return directoryURL.URLByAppendingPathComponent(pathComponent!)
      }
      return temporaryURL
    }).response{ (_,_, data, err) -> Void in
      println(data)
    }
Run Code Online (Sandbox Code Playgroud)

cno*_*oon 5

这是一个代码示例,使用@mattt建议使用NSURLRequest已附加的标头来匹配您的代码示例.

let URLString = "whatever/floats/your/boat"
let URLRequest = NSMutableURLRequest(URL: NSURL(string: URLString)!)
URLRequest.setValue("Header Value", forHTTPHeaderField: "Header Name")

let request = Alamofire.download(URLRequest) { temporaryURL, response in
    let fileManager = NSFileManager.defaultManager()

    if let directoryURL = fileManager.URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask)[0] as? NSURL {
        let pathComponent = response.suggestedFilename
        return directoryURL.URLByAppendingPathComponent(pathComponent!)
    }

    return temporaryURL
}

request.response { _, response, data, error in
    if let data = data as? NSData {
        println(NSString(data: data, encoding: NSUTF8StringEncoding))
    } else {
        println(response)
        println(error)
    }
}
Run Code Online (Sandbox Code Playgroud)