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