Swift 中的 Alamofire 和 base64string

Alamofire & base64string in Swift

尝试将 base64String 添加到 Alamofire 中的参数数组时出现问题,不确定是否有人知道此限制或是否与 Swift 有关。

    var  base64String:String = ""
        if((testImageRow.value) != nil) {
            var img:UIImage = testImageRow.value as! UIImage
            var imageData = UIImagePNGRepresentation(img)
            base64String = imageData.base64EncodedStringWithOptions(.EncodingEndLineWithLineFeed)
        }

    var params:[String: AnyObject] = ["image": base64String]
    myAPI.post("image/update", parameters:params , delegate: self,tag:0)

下面是收到的错误

GET Error: Optional(Error Domain=NSCocoaErrorDomain Code=3840 "The operation 
couldn’t be completed. (Cocoa error 3840.)" 
(Invalid value around character 0.) UserInfo=0x7fbda203c110
{NSDebugDescription=Invalid value around character 0.})

仅当 return 数据未正确指定存储在变量中的值的类型时,才会出现 Optional() 参数。

首先从响应 URL 开始,看看到底发生了什么。您可以使用 NSLog [NSString stringWithUTF8String: [data bytes]] 获取漂亮的数据版本,但不要忘记观察 HTTP 响应。日志 [Description answer].

如果 POST 方法没有在你的代码中实现我建议你添加到你的 MyApi 问题可以假设占用 extension Alamofire.Request

var params: [Dictionary<String, AnyObject>] = []
var addthis = [
    "image": ""
]
params.append(addthis)

这样我整理了一张图片:

 var pic :NSData = UIImageJPEGRepresentation(cameraView.image, 0.5)
 var str = pic.base64EncodedStringWithOptions(NSDataBase64EncodingOptions(0))