我想上传一些文件到服务器,但它需要一个令牌才能与文件一起发布。我登录时得到了令牌,那么我如何才能发布到服务器?我可以这样写代码吗?
var par=[
"token":"xxxxxxxxxx",
"file":"filename.file"
]
Alamofire.upload(.POST, "http://www.xxxxx.xxx", parameters: par)
这在当前版本的Alamofire中很可能不受支持,具体取决于您的服务器实现。
多部分表单数据
您的服务器很可能希望数据是multipart/form-data
编码的。目前,Alamofire不支持多部分表单数据。您需要根据RFC-2388和RFC-2045自己对数据进行编码。
如果最终出现这种情况,您可以实现自己版本的规范,也可以使用AFNetworking。如果是这样的话,我现在鼓励您使用AFNetworking。如果你真的想自己实现这一点,这里有一个线程(由@rainypixels提供)可以让你开始。
您需要小心使用此选项,因为它是内存中的解决方案。不要试图以这种方式上传视频或大量图像,或者你的应用程序很快内存不足。
文件上载
如果服务器不期望multipart/form-data
编码,则可以使用Alamofire上载方法。
public func upload(URLRequest: URLRequestConvertible, file: NSURL) -> Request
您可以创建一个添加了令牌作为参数的NSURLRequest
,然后将fileURL
传递给Alamofire进行上传。
总之,我非常确定第一种方法是您的服务器所需要的。不管怎样,希望这能帮助你朝着正确的方向前进。