【发布时间】:2016-10-27 16:27:19
【问题描述】:
我很难让它发挥作用。我正在尝试按照Getting Started section 中的 API 说明将文件上传到 Box
我正在使用 Xcode 8、Swift 3 和 Alamofire 4 框架。我已经用谷歌搜索并搜索了堆栈溢出。我觉得我已经接近了,但是文件上传它仍然无法正常工作。
我不断收到来自 BOX API 的错误消息:
[结果]:成功:{ 代码 = "bad_request"; “上下文信息”= { 错误 = ( { message = "'父' 是必需的"; 名字=父母; 原因=“缺少参数”; } ); };
这是我的代码
func testUpload() {
let endpoint = "https://upload.box.com/api/2.0/files/content"
let headers: HTTPHeaders = [
"Authorization": "Bearer \(tempDeveloperToken)"
]
let jsonAttributes = JSON(["name": "test.pdf", "parent": ["id": "11774646649"]])
let file = PDFService.getPDF(named: "document") //Returns file as URL
let paramAttributes = jsonAttributes.stringValue.data(using: String.Encoding.utf8)
Alamofire.upload(
multipartFormData: { multipartFormData in
multipartFormData.append(paramAttributes!, withName: "attributes")
multipartFormData.append(file, withName: "file")
},
to: endpoint,
method: .post,
headers: headers,
encodingCompletion: { encodingResult in
switch encodingResult {
case .success(let upload, _, _):
upload.responseJSON { response in
debugPrint(response)
}
case .failure(let encodingError):
print(encodingError)
}
}
)
}
我尝试了许多不同的方法来将参数添加到上传中,我缺少什么?
【问题讨论】:
-
终于想通了,并通过自己的问题回答。请参阅下面的解决方案。
标签: xcode swift3 alamofire box-api