Alamofire 4 swift 3 上传带有标题的 MultipartFormData 未发布
Posted
技术标签:
【中文标题】Alamofire 4 swift 3 上传带有标题的 MultipartFormData 未发布【英文标题】:Alamofire 4 swift 3 Uploading MultipartFormData with header not posting 【发布时间】:2016-11-03 15:04:45 【问题描述】:我的代码有问题,新的 Alamofire 4 已在网上搜索示例 - 不走运。我的代码跳过了它没有调用 URL 的 post 方法:
Alamofire.upload(multipartFormData:
multipartFormData in
multipartFormData.append(tempUrl, withName: self.path),
usingThreshold:UInt64.init(),
to:posturl!,
method:.post,
headers: Oauthdata.uplodHeader ,
encodingCompletion: encodingResult in
switch encodingResult
case .success(let upload, _, _):
upload.responseJSON response in
debugPrint(response)
case .failure(let encodingError):
print(encodingError)
) catch
print("Somethings not right")
【问题讨论】:
什么是Oauthdata.uplodHeader
(原文如此)?也请格式化您的代码:)
Oauthdata.uplodHeader 是我为 api 创建的结构的标头,以便能够在其他类中使用,这是我在堆栈溢出方面的第一篇文章,请帮助
是的,但你的问题是什么?那不工作?查看 oauthdata 标头(实际值)会很有趣。也尽量不要用!
,用guard let url = posturl else return instead
无法发布到我的端点没有呼叫正在尝试将录音上传到端点也有参数我需要与上传一起传递我对新结构有点困惑请帮助 2 周现在我坚持一件事......这是我的标题似乎 uplodHeader = [ "Authorization":("(TokenType) (Token)" as AnyObject) 一样!字符串]
您的 authHeader 应该是:let authHeader: Dictionary<String, String> = ["Authorization" : "Bearer \(authToken)"
或类似的东西。您是否打印了标题以查看其格式是否正确?使用正确的 authToken 值?
【参考方案1】:
尝试使用RequestAdapter
协议的方法,在the docs中提到:
class AccessTokenAdapter: RequestAdapter
private let accessToken: String
init(accessToken: String)
self.accessToken = accessToken
func adapt(_ urlRequest: URLRequest) throws -> URLRequest
var urlRequest = urlRequest
urlRequest.setValue("Bearer " + accessToken, forHTTPHeaderField: "Authorization")
return urlRequest
class HTTPClient
func setupHeader(with authToken: String)
let sessionManager = SessionManager()
sessionManager.adapter = AccessTokenAdapter(accessToken: authToken)
HTTPClient
是您执行此设置的类...
【讨论】:
以及如何将其放入我的上传方法中? 您在登录后调用 setupHeader... 当您实际拥有有效令牌时! 得到它的工作非常感谢.....现在我所要做的就是在哪里添加参数 你找到在哪里添加参数了吗?以上是关于Alamofire 4 swift 3 上传带有标题的 MultipartFormData 未发布的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Swift 中使用 Alamofire 上传带有 JSON 参数的图像?
iOS Swift + Alamofire 上传带有 exif 数据的照片
带有 Swift 3 的 Alamofire 4.3,POST 请求不适用于 URL 参数