gpt4 book ai didi

ios - 如何使用 Alamofire 上传带有身份验证的 MultipartFormData

转载 作者:可可西里 更新时间:2023-11-01 01:37:44 26 4
gpt4 key购买 nike

如何使用 Alamofire 上传带有身份验证的 MultipartFormData?我不明白的部分是放在哪里 .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)
}
}
)

我认为可以将身份验证过程添加到 header 中吗?

最佳答案

没有太多时间探索 rilbits.com 的 API。当我在 Safari 中访问该地址时,出现以下错误:

Please add 'Authorization' or 'X-Access-Token' header to your request 

这为您建议了 2 个选项:

  1. 先登录并取回访问 token ,然后您可以将其用于上传请求
  2. 连同上传请求一起发送基本的 Authorization header 。

以下是发送 Authorization header (第二个选项)的方法:

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 中提取的
  • 我没有测试上面的代码

关于ios - 如何使用 Alamofire 上传带有身份验证的 MultipartFormData,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34375376/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com