在NSData Swift中将来自String的数据编码为HTTBody的字节

时间:2015-07-06 16:55:51

标签: ios swift

我正在开发一个到银行的网关链接,用于输入信用卡号,付款以证明信用卡是正确的。 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,其中一个值不正确。

2 个答案:

答案 0 :(得分:1)

对于iOS7 +,您可以使用NSData的内置方法:

NSString *string = [data base64EncodedStringWithOptions:kNilOptions];

如果mstrPostData是NSString,则可以转换为NSData:

NSData* data = [mstrPostData dataUsingEncoding:NSUTF8StringEncoding];

这是Objective-C代码

答案 1 :(得分:1)