Alamofire 5: проблема с загрузкой многокомпонентных изображений Swift для flask API

Я пытался загрузить одно изображение через многостраничные данные Alamofire 5, API работает нормально на Postman, а также на стороне Android, но не работает на стороне iOS. API разработан в Python Flask. Изображение получено с камеры и с помощью загрузки изображения JPEGCompression.

Вот мой код:

func postMultipartData(imageData: Data, completion:@escaping (Result<AccuracyModel?, ErrorResponse>) -> Void) {
        let url = APIConstant.ImageAccuracyBaseUrl.BASEURL
        let mimeType = "image/jpeg"
        
        let headers: HTTPHeaders = [
               "Content-Type": ContentType.multipart.rawValue
        ]
        
        AF.upload(multipartFormData: { (multipartFormData) in
            
            multipartFormData.append(imageData, withName: "file", fileName: "file123.jpg", mimeType: mimeType)
            print(multipartFormData.boundary)
        }, to: url, usingThreshold: UInt64.init(),
           method: .post,
           headers: headers).response { response in
            switch response.result {
            case .success(_):
                if response.response?.statusCode == 200 || response.response?.statusCode == 201 {
                    do {
                        
                        if let data = response.data {
                            
                            let json = try JSONSerialization.jsonObject(with: data, options: []) as? [String: Any]
                            print(json ?? "")
                            
                            let decodedData = try! JSONDecoder().decode(AccuracyModel.self, from: data)
                            
                            DispatchQueue.main.async {
                                completion(.success(decodedData))
                            }
                        } else {
                            print(response)
                        }
                    } catch {
                        completion(Result.failure(self.generateErroModel()!))
                    }
                } else if response.response?.statusCode == 500 {
                    completion(Result.failure(self.generateErroModel()!))
                } else {
                    fallthrough
                }
                
                break
            case .failure(_):
                completion(Result.failure(self.generateErroModel()!))
            }
        }
    }

В целях тестирования api использует порт 5000, это может быть проблемой? Параметры не требуются, поэтому их не отправляем.

Я также пробовал использовать NSURLSession, но не повезло.

Для кода Flask я сослался на следующую ссылку:https://pytorch.org/tutorials/intermediate/flask_rest_api_tutorial.html

Заранее спасибо.

0 ответов

Другие вопросы по тегам