我正在开发一个到银行的网关链接,用于输入信用卡号,付款以证明信用卡是正确的。 Android我没有问题,但在使用Swift的iOS中我不能让它工作。目前我有一个String,我必须发送URL,问题是这个PostData字节必须在base64中,但无法转换它。
这就是我在Android中所拥有的:
EncodingUtils.getBytes(mstrPostData, "base64")
这将获取字符串并转换为base64编码中的字节。
我需要与Swift相同并在转换后,放入NSData以从我的请求对象中分配HTTBody
编辑:我解决了这些问题:let utf8str: NSData = postString.dataUsingEncoding(NSUTF8StringEncoding)!
let base64Encoded: String = utf8str.base64EncodedStringWithOptions(NSDataBase64EncodingOptions(rawValue: 0))
let data: NSData = NSData(base64EncodedString: base64Encoded as String, options: NSDataBase64DecodingOptions(rawValue: 0))!
我发现的另一个错误是我放在postString中的参数是SHA1,其中一个值不正确。
答案 0 :(得分:1)
对于iOS7 +,您可以使用NSData的内置方法:
NSString *string = [data base64EncodedStringWithOptions:kNilOptions];
如果mstrPostData是NSString,则可以转换为NSData:
NSData* data = [mstrPostData dataUsingEncoding:NSUTF8StringEncoding];
这是Objective-C代码
答案 1 :(得分:1)