使用alamofire发布form_data数据不起作用

时间:2018-10-19 06:50:21

标签: ios swift alamofire

我想从我的应用程序发送数据和图像 但不发送此代码

let parameters: [String: AnyObject] = [
                "latitude" : lat as AnyObject,
                "longitude" : lng as AnyObject,
                "lokasi" : txtAlamat.text as AnyObject,
                "keterangan" : txtKeterangan.text as AnyObject,
                "jenis_absen" : absenIndex as AnyObject
            ]
            let requestUrl = "https://link.co/link_me"

            Alamofire.request(requestUrl, method: .post, parameters: parameters, encoding: JSONEncoding.default).authenticate(user: username!, password: password!).responseJSON { response in
                    print(response)
                if let error = response.error{
                    self.hideLoading()
                    _ = SweetAlert().showAlert("Warning", subTitle:error.localizedDescription, style: AlertStyle.error, buttonTitle:"Dismiss")
                    return
                }
                debugPrint(response.result.value!)
                let parsedResult = JSON(response.result.value!)

邮递员成功发送带有form_data的数据 enter image description here

我想添加图像,但我不知道

此打印(参数) enter image description here

2 个答案:

答案 0 :(得分:1)

如果要发送参数和数据(例如,像图像),则必须使用UPLOAD请求(Alamofire.upload(...)),而不是常规请求

Upload请求使用NSData(字节)填充请求正文,因此您必须在 multipartFormData 正文中序列化参数和图像。

我希望这对您有所帮助,以便在此处阐明问题。

答案 1 :(得分:0)

请尝试以下操作,因为您要发布带有可选内容的数据,所以请不要对数据进行包装。

context.perform {
    entity.image = data
    // Save context
}