Multipart POST с Alamofire

Я хочу сделать запрос к моему серверу Rails, используя Alamofire в Swift. У меня есть простой объект, который я хотел бы сериализовать, а также несколько изображений, которые я хотел бы прикрепить как данные с многократным кодированием.

На моей стороне рельсов это так же просто, как запрос:

post :create, object: parameters, files: ['file1', 'file2'], format: :json

Какой самый элегантный способ сделать это с помощью Alamofire?


person mattvv    schedule 05.11.2014    source источник


Ответы (2)


Я еще не углубился в огонь Alamo, но чтение документации наводит меня на мысль, что это не поддерживается в Alamo Fire в настоящее время. В частности, в конце документа под заголовком «Когда следует использовать AFNetworking» указано:

Используйте AFNetworking для любого из следующих действий:

  • Расширения UIKit, такие как асинхронная загрузка изображений в UIImageView
  • Проверка TLS с использованием AFSecurityManager
  • Ситуации, требующие NSOperation или NSURLConnection, с использованием AFURLConnectionOperation
  • Мониторинг доступности сети с помощью AFNetworkReachabilityManager
  • Построение составного HTTP-запроса с использованием AFHTTPRequestSerializer
person Brandon    schedule 08.11.2014
comment
Спасибо, Брэндон, я импортировал AFNetworking для этого вызова, и, похоже, он работает. - person mattvv; 11.11.2014

Я не уверен что вы спрашиваете

В Swift 3

Но для реализации MultiPartFormdata следующий код может быть полезен

Alamofire.upload(multipartFormData: { (multipartFormData) in
        multipartFormData.append(UIImageJPEGRepresentation(self.Imgprofile.image!, 1)!, withName: "Prescription", fileName: "Profile_Image.jpeg", mimeType: "image/jpeg")
    }, to:"Your URL Here")
    { (result) in
        switch result {
        case .success(let upload, _, _):
            print(result)

            upload.uploadProgress(closure: { (progress) in
                print(progress)
            })

            upload.responseJSON { response in
                //print response.result
                print(response);
            }

        case .failure(let encodingError):
            print(encodingError);
        }
    }
}

Это последний рабочий синтаксис

person Abhirajsinh Thakore    schedule 14.07.2017