【发布时间】:2016-05-24 23:17:46
【问题描述】:
我的这个 curl 帖子可以正常工作,但是对于我的一生,我无法让它与 NSURLSession 或 Alamofire 一起工作。返回正常的卷曲是:
curl https://api.truevault.com/v1/vaults/XXXXXX-XXXX-XXXX-XXXX-XXXXXXXX/blobs \
-X POST \
-u yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyy: \
--form "file=@foo.pdf" \
-H "Content-Type:multipart/form-data"
无论我使用哪种 curl 或 NSURLSession 变体,我都会收到 401 错误,但使用 curl 可以成功完成!请帮忙!谢谢!
当前的 ALAMOFIRE 尝试
let headers = ["Authorization": Config.trueVaultKey, "Content-Type": "multipart/form-data"]
Alamofire.upload(
Alamofire.Method.POST,
url!,
headers: headers,
multipartFormData: { multipartFormData in
multipartFormData.appendBodyPart(
data: dat!,
name: "file",
fileName: "license.png",
mimeType: "image/png"
)
},
encodingCompletion: { encodingResult in
switch encodingResult {
case .Success(let upload, _, _):
upload.responseString { response in
//JSON = response.result.value! as String
debugPrint(response)
print("\n\n\nREQUEST HEADER: \(response.request!.allHTTPHeaderFields!)")
print("\n\n\nREQUEST BODY: \(response.request!.HTTPBody)")
print("\n\n\nREQUEST BODY STREAM: \(response.request!.HTTPBodyStream)")
}
case .Failure(let encodingError):
print(encodingError)
}
})
【问题讨论】:
-
你能发布你的 swift 代码吗?
-
使用 swift 代码更新
-
我认为你不需要设置标题,多部分会自动添加。不知道什么是授权,但我在你的 cURL 中看不到它。是 XXXX-XXXX-XXXX 吗?所以它应该出现在 URL 而不是标题中。
标签: swift authentication curl alamofire nsurlsession