菜鸟教程小白 发表于 2022-12-11 20:22:14

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


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

<pre><code>let params = [&#34;id&#34;:&#34;101&#34;,&#34;arrayParam&#34;:[&#34;1232&#34;,&#34;12344&#34;,&#34;14325&#34;]]

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

                            return
                        }



                  }
                case .failure(let error):
                  print(&#34;Error in upload: \(error.localizedDescription)&#34;)
                  onError?(error)
                   }
            }
</code></pre></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><pre><code> let params = [
      &#34;key&#34;:value,
      &#34;key1&#34;: key2] as



    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: &#34;response&#34;)!
                  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: &#34;response&#34;)!
                  self.displayAlert(Message: ResponseFail as! String, myView:self)
                }
            }


    }
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 如何使用 swift 4 从数据中使用 Alamofire 多部分发送参数数组,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/51380508/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/51380508/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 如何使用 swift 4 从数据中使用 Alamofire 多部分发送参数数组