【发布时间】:2016-09-20 17:21:11
【问题描述】:
我想将Int 值添加到multipartFormData:
Alamofire.upload(.POST,
url,
headers: headers,
multipartFormData: { multipartFormData in
//add some jpg image
//add other vaues:
for (key, value) in parameters {
if value is String {
multipartFormData.appendBodyPart(data: value.dataUsingEncoding(NSUTF8StringEncoding)!, name: key)
} else if value is Int {
let convertedValueNumber: NSNumber = NSNumber(int: value.intValue)
let data = NSKeyedArchiver.archivedDataWithRootObject(convertedValueNumber)
multipartFormData.appendBodyPart(data: data, name: key)
}
}
}, encodingCompletion: { encodingResult in
//some processing
})
但是服务器返回错误,我没有发送Int 值。如何在参数中添加Int 值?
【问题讨论】:
-
您可以选择将类型转换为字符串。
-
你的服务器真的期待
NSKeyedArchiver二进制plist?!?大多数情况下,服务器只期望数字值的字符串表示形式。 -
@Rob 我尝试在没有 NSKeyedArchiver 的情况下进行转换 我使用了 let data = NSData(bytes: &vInt, length: sizeof(Int)) multipartFormData.appendBodyPart(data: data, name: key) 而这没有帮助
-
您的服务器真的需要二进制有效负载吗?通常它是字符串表示形式(例如,使用字符串插值,
"\(value)")。
标签: json swift int nsdata alamofire