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

Posted

技术标签:

【中文标题】使用 alamofire 发布 form_data 数据不起作用【英文标题】:post form_data data with alamofire not work 【发布时间】:2018-10-19 06:50:20 【问题描述】:

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

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 发送数据

我想添加图片,但我不知道怎么做

这个打印(参数)

【问题讨论】:

你传递的是什么标题,如果它已经AnyObject,你不需要强制转换你的变量,或者使用Any 在我通过授权的标题中。 我的错误是什么? 请在您的申请中发布您收到的回复。 要传递图像,您需要将它们作为数据传递。你可以参考这个链接来获得一个想法 - ***.com/questions/37832092/… 【参考方案1】:

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

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

我希望这对您有所帮助,以澄清这里的问题。

【讨论】:

【参考方案2】:

尝试跟随,您发布的数据是可选的,因此请打开您的数据。

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
        ]

【讨论】:

授权成功,但数据仍未发送到链接, 可以在 requestUrl 初始化之前打印(参数)给我看吗? api 您使用 SSL 证书请求 ia 您是否实施了 ssl 验证?在你身边我是指移动端? 我已经更新了我的问题并添加了打印参数照片 为什么你的帖子数据在结束方括号之前有一个逗号?

以上是关于使用 alamofire 发布 form_data 数据不起作用的主要内容,如果未能解决你的问题,请参考以下文章

追加后表单数据显示为空

值:(failure(Alamofire.AFError.explicitlyCancelled)) 使用 Alamofire 发布者时

发布方法 HTTPHeader 中的 Alamofire 5.1 更新问题,使用 alamofire 的网络调用

如何使用 Alamofire 发布 SwiftyJSON?

json 使用 alamofire 快速发布嵌套对象

Swift - 使用 alamofire 发布请求