如何使用REST API从Parse.com下载文件?

时间:2015-12-20 01:42:53

标签: ios swift rest parse-platform swift2

我在Parse.com file download question找到了这个问题,但是,它只提到可以从Url下载该文件。此外,Parse.com REST Documentation仅讨论上传文件并与对象关联。

我尝试仅访问该网址,但会返回错误。

任何人都可以帮助Swift中的示例并使用REST API,在查询对象后获取URL后如何下载实际文件?

这是我得到的错误:

Error Domain=NSURLErrorDomain Code=-1100 "The requested URL was not found on this server." UserInfo={NSUnderlyingError=0x7fa39940dcc0 {Error Domain=kCFErrorDomainCFNetwork Code=-1100 "(null)"}

这是我在Swift 2.0中的代码:

func downloadFile(){
    let str = "http://files.parsetfss.com/c426b506-44da-447d-91d0-93f13980758b/tfss-127e50c4-be6e-4228-b1a3-3f253358ac24-pic.jpg"
    let request = NSMutableURLRequest()
    request.HTTPMethod = "GET"
    request.addValue(appID, forHTTPHeaderField:  "X-Parse-Application-Id")
    request.addValue(apiKey, forHTTPHeaderField: "X-Parse-REST-API-Key")

    let url = NSURL(fileURLWithPath: str)
    request.URL = url

    let session = NSURLSession.sharedSession()
    let task = session.dataTaskWithRequest(request, completionHandler: {
        (data, response, error) in
        if (error == nil) {
            do {
                let image = try NSJSONSerialization.dataWithJSONObject(data!, options: [])
            } catch {

            }
        }
    })
    task.resume()
}

这是我在查询对象时获得的JSON响应,并且url是需要使用以获取文件的内容:

"picture": {
"__type" = File;
name = "tfss-127e50c4-be6e-4228-b1a3-3f253358ac24-pic.jpg";
url = "http://files.parsetfss.com/c426b506-44da-447d-91d0-93f13980758b/tfss-127e50c4-be6e-4228-b1a3-3f253358ac24-pic.jpg";

1 个答案:

答案 0 :(得分:1)

我打赌你的问题就在这一行:

let url = NSURL(fileURLWithPath: str)

str”是远程网址而不是本地文件路径,该API尝试执行的操作是从您提供的字符串中创建本地“file:///”网址。

为什么不这样做:

let url = NSURL(string: str)

并看看它是否更好?