#ios #alamofire #multipartform-data #swift5 #xcode11
#iOS #alamofire #multipartform-данные #swift5 #xcode11
Вопрос:
Я пытаюсь обновить детали профиля с помощью Alamofire multipartFormData. Ниже приведен скриншот Postman, показывающий, каким должен быть запрос.
Ниже приведено то, что я пытаюсь сделать, используя multipartFormData в Alamofire.
func Post(imageOrVideo : UIImage?){
let headers: HTTPHeaders = [
"Content-type": "multipart/form-data"
]
AF.upload(
multipartFormData: { multipartFormData in
multipartFormData.append(imageOrVideo!.jpegData(compressionQuality: 0.5)!, withName: "upload_data" , fileName: "landing.jpeg", mimeType: "image/jpeg")
multipartFormData.append(data: Data, withName: self.Pharmacy_name.text!)
},
to: "url", method: .post , headers: headers)
.response { resp in
print("response is:" , resp)
}
Для того, чтобы вызов API возвращал «true», все вышеуказанные данные должны присутствовать в запросе. Я просто не понимаю, как добавить значения текстового поля в multipartFormData.append.
Я новичок в разработке iOS, поэтому, пожалуйста, потерпите меня. Любая помощь, которую я мог бы получить, очень ценится!
Ответ №1:
Исправлено! Ниже приведен код.
func Post(imageOrVideo : UIImage?){
let headers: HTTPHeaders = [
/* "Authorization": "your_access_token", in case you need authorization header */
"Content-Type": "multipart/form-data"
]
AF.upload(
multipartFormData: { multipartFormData in
multipartFormData.append(imageOrVideo!.jpegData(compressionQuality: 0.5)!, withName: "upload_data" , fileName: "landing.jpeg", mimeType: "image/jpeg")
multipartFormData.append(self.Pharmacy_name.text!.data(using: .utf8, allowLossyConversion: false)!, withName: "name")
multipartFormData.append(self.Address_line1.text!.data(using: .utf8, allowLossyConversion: false)!, withName: "address_line_1")
multipartFormData.append(self.Address_line2.text!.data(using: .utf8, allowLossyConversion: false)!, withName: "address_line_2")
multipartFormData.append(self.Start_time.text!.data(using: .utf8, allowLossyConversion: false)!, withName: "open_at")
multipartFormData.append(self.close_time.text!.data(using: .utf8, allowLossyConversion: false)!, withName: "close_at")
multipartFormData.append(self.contact_number.text!.data(using: .utf8, allowLossyConversion: false)!, withName: "phone_no")
multipartFormData.append("0.00".data(using: .utf8, allowLossyConversion: false)!, withName: "longitude")
multipartFormData.append("0.00".data(using: .utf8, allowLossyConversion: false)!, withName: "latitude")
multipartFormData.append("1".data(using: .utf8, allowLossyConversion: false)!, withName: "id")
multipartFormData.append(self.token.data(using: .utf8, allowLossyConversion: false)!, withName: "api_token")
},
to: "url", method: .post , headers: headers)
.response { resp in
print("response is:" , resp)
}
Надеюсь, это кому-то поможет.