gpt4 book ai didi

ios - 使用 AFNetworking 从 Django 服务器下载文件

转载 作者:行者123 更新时间:2023-11-29 02:21:15 25 4
gpt4 key购买 nike

我正在使用 AFNetworking 向 Django 服务器发送 HTTP 请求以将文件下载到 iPhone。但是,控制台也不会打印出“成功”或“错误”。我也无法在特定目录“.../database”中找到该文件。对于服务器端,日志文件是正确的 ([22/Jan/2015 16:45:49] "GET/main/receivefile/HTTP/1.1"200 16811),我可以看到请求并且没有错误。这是我的客户端代码:

var parameters = ["username":"u987103"];

let documentsPath = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as String
let outPath = String(format: "%@/database/tmp.txt", documentsPath)


self.man = AFHTTPRequestOperationManager()

self.op = self.man.GET(url, parameters: parameters,
success: {(operation:AFHTTPRequestOperation!,responseObject:AnyObject!) in
println("Success")
}
, failure:{(operation:AFHTTPRequestOperation!,error:NSError!) in
println("Error: %@",error);
})
op.outputStream = NSOutputStream(toFileAtPath: outPath, append: false)

Django服务器中请求URL对应的代码为:

def retrieve_file(request):
filename = os.path.basename(m_path)
path = os.path.join(settings.MEDIA_ROOT,m_path)
wrapper = FileWrapper(file(path))
response = HttpResponse(wrapper,content_type="text/plain")
response['Content-Disposition'] = 'attachment; filename="'+filename+'"'
return response

我已经测试过使用 Chrome 下载文件,只要我输入 URL 并点击“输入”,文件就会下载到我的下载文件夹中。那么谁能告诉我为什么它对 AFNetwokring 不起作用?

最佳答案

是的,没错。

在这里查看文档 - http://cocoadocs.org/docsets/AFNetworking/2.0.0/Classes/AFHTTPRequestOperationManager.html#//api/name/responseSerializer .您需要为 AFHttpRequestOperationManager 指定响应序列化程序。

您似乎正在下载一个纯文本文件,因此您可以使用默认的序列化程序。添加此调用:

self.man.responseSerializer = AFHttpResponseSerializer()

在调用 self.man.GET 之前。

https://github.com/AFNetworking/AFNetworking/wiki/AFNetworking-2.0-Migration-Guide有一些关于响应和请求序列化器如何工作的细节。

关于ios - 使用 AFNetworking 从 Django 服务器下载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28100766/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com