• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - 如何使用 swift 4 从数据中使用 Alamofire 多部分发送参数数组

[复制链接]
菜鸟教程小白 发表于 2022-12-11 20:22:14 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我正在使用 Alamofire 将图像和文件上传到服务器。但是我在发送带有图像的参数数组时遇到问题。但是当我在 params 中发送一个数组时,它会将数组转换为 JSON 字符串。但我想在参数中发送一个数组,而不是在 JSON 字符串中。我进行了很多搜索,但没有得到任何解决方案。这是下面的代码。

let params = ["id":"101","arrayParam":["1232","12344","14325"]]

    let url = www.khxjjhdfsj.com/hsdgs
            let headers: HTTPHeaders = [
                /* "Authorization": "your_access_token",  in case you need authorization header */
                "Content-type": "multipart/form-data"
            ]
            Alamofire.upload(multipartFormData: { (multipartFormData) in
                for (key, value) in params
                {
                     multipartFormData.append("\(value)".data(using: String.Encoding.utf8)!, withName: key as String)
                }
                if let data = imageData
                {
                    multipartFormData.append(data, withName: "file", fileName: fileName, mimeType: "image/png")
                }
                if let data = pdfData
                {
                    multipartFormData.append(data, withName: "file", fileName: fileName, mimeType:"application/pdf")
                }
            }, usingThreshold: UInt64.init(), to: url, method: .post, headers: headers) { (result) in
                switch result{
                case .success(let upload, _, _):
                    upload.responseJSON { response in
                        print("Succesfully uploaded")
                        if let err = response.error
                        {
                            onError?(err)

                            return
                        }



                    }
                case .failure(let error):
                    print("Error in upload: \(error.localizedDescription)")
                    onError?(error)
                   }
            }



Best Answer-推荐答案


 let params = [
        "key":value,
        "key1": key2] as [String : Any]



    let manager = Alamofire.SessionManager.default
    manager.session.configuration.timeoutIntervalForRequest = 30000

    manager.request(url, method: .post, parameters: params)
        .responseJSON {


            response in

            switch response.result {
            case .success:
               stopActivityIndicator()
                print(response)
                if let result = response.result.value {
                    let JSON = result as! NSDictionary
                    print(JSON)
                    let ResponseSuccess = JSON.object(forKey: "response")!
                    self.displayAlert(Message: ResponseSuccess as! String, myView:self)


                }


            case .failure( _):

                if let result = response.result.value {
                    stopActivityIndicator()
                    let JSON = result as! NSDictionary
                    print(JSON)
                    let ResponseFail = JSON.object(forKey: "response")!
                    self.displayAlert(Message: ResponseFail as! String, myView:self)
                }
            }


    }

关于ios - 如何使用 swift 4 从数据中使用 Alamofire 多部分发送参数数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51380508/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap