问题描述
我正尝试通过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
预先感谢。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)