Como fazer upload de uma imagem usando vários dados de formulário de várias partes com autenticação básica?
Sou novo em programação e em desenvolvimento iOS. Preciso fazer upload de uma imagem usando os dados do formulário de várias partes da Alamofire, mas também preciso inserir o cabeçalho de autenticação básica.
nesta discussãoAlamofire 4.0 Upload MultipartFormData Header, parece semelhante ao meu problema, o código é assim para fazer o upload
Alamofire.upload(multipartFormData:{ multipartFormData in
multipartFormData.append(unicornImageURL, withName: "unicorn")
multipartFormData.append(rainbowImageURL, withName: "rainbow")},
usingThreshold:UInt64.init(),
to:"https://httpbin.org/post",
method:.post,
headers:["Authorization": "auth_token"],
encodingCompletion: { encodingResult in
switch encodingResult {
case .success(let upload, _, _):
upload.responseJSON { response in
debugPrint(response)
}
case .failure(let encodingError):
print(encodingError)
}
})
mas estou confuso sobre como colocar o cabeçalho de autenticação básica (nome de usuário e senha). e também confundi onde deveria colocar meus dados de imagem.
Encontro outro tópico que parece semelhante ao meu problema. Aqui está...Como fazer upload de MultipartFormData com autenticação usando Alamofire, a solução proposta é este código:
let username = "username"
let password = "password"
let credentialData = "\(username):\(password)".dataUsingEncoding(NSUTF8StringEncoding)!
let base64Credentials = credentialData.base64EncodedStringWithOptions([])
let headers = ["Authorization": base64Credentials]
Alamofire.upload(
.POST,
"https://rilbits.com/supersafe/photo/upload",
headers: headers,
multipartFormData: { multipartFormData in
let data = "default".dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false)!
multipartFormData.appendBodyPart(data: data, name: "_formname")
multipartFormData.appendBodyPart(fileURL: fileURL, name: "photo")
},
encodingCompletion: { encodingResult in
switch encodingResult {
case .Success(let upload, _, _):
upload.responseString { response in
debugPrint(response)
}
case .Failure(let encodingError):
print(encodingError)
}
}
)
mas depois de corrigir o swift 4.1, ocorre um erro:
você poderia por favor ajudar o meu problema? Desde já, obrigado :)