如何上传MultipartFormData
使用 Alamofire 进行身份验证?我不明白的部分是放在哪里.authenticate(user: username, password: password).
?这就是我通常使用的上传图片的方式MultipartFormData
:
Alamofire.upload(
.POST, "https://myExampleUrl/photo/upload", headers: headers, multipartFormData: { multipartFormData in
multipartFormData.appendBodyPart(data: "default".dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false)!, 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)
}
}
)
我认为可以将身份验证过程添加到标头中吗?
没有太多时间去探索 APIrilbits.com
。当我在Safari中访问该地址时,出现以下错误:
Please add 'Authorization' or 'X-Access-Token' header to your request
这为您建议了 2 个选项:
- 首先登录并取回访问令牌,然后您可以将其用于上传请求
- 发送基本信息
Authorization
标头以及上传请求。
您可以通过以下方式发送Authorization
标题(第二个选项):
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)
}
}
)
全面披露:
- 授权码已从 Alamofire 中解除readme
- 我没有测试上面的代码
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)