我想为增加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
很好奇。通常,您只是发送字符串表示形式,例如:
Alamofire.upload(.POST, URL, headers: headers, multipartFormData: { multipartFormData in
//add some jpg image
//add other values:
for (key, value) in parameters {
if value is String {
multipartFormData.appendBodyPart(data: value.dataUsingEncoding(NSUTF8StringEncoding)!, name: key)
} else if value is Int {
multipartFormData.appendBodyPart(data: "\(value)".dataUsingEncoding(NSUTF8StringEncoding)!, name: key)
}
}
}, encodingCompletion: { encodingResult in
//some processing
})
或者,甚至更简单,因为字符串插值可与String
和一起使用Int
:
Alamofire.upload(.POST, URL, headers: headers, multipartFormData: { multipartFormData in
//add some jpg image
//add other values:
for (key, value) in parameters {
if value is String || value is Int {
multipartFormData.appendBodyPart(data: "\(value)".dataUsingEncoding(NSUTF8StringEncoding)!, name: key)
}
}
}, encodingCompletion: { encodingResult in
//some processing
})
或者,在带有Swift 3的Alamofire 4中:
Alamofire.upload(multipartFormData: { multipartFormData in
//add some jpg image
//add other values:
for (key, value) in parameters {
if value is String || value is Int {
multipartFormData.append("\(value)".data(using: .utf8)!, withName: key)
}
}
}, to: url, method: .post, headers: headers, encodingCompletion: { encodingResult in
//some processing
})
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句