gpt4 book ai didi

swift - 快速解码 base64 编码的应用引擎数据的问题

转载 作者:可可西里 更新时间:2023-10-31 23:44:23 26 4
gpt4 key购买 nike

我正在开发从 Google 端点获取数据的 ios 应用程序,数据在服务器上以 base 64 编码为自定义 java 对象,然后由端点方法返回。

在 iOS 端,我能够接收数据并使用生成的客户端代码打印数据。

我遇到了一个问题,我无法将数据解码回 GTL**** 端点自动生成的类。

解码后的数据显示了一些十六进制数字:我的代码:

let respo2 = GTLDecodeBase64(responce) as? GTLEndpointStatusCollection

我还尝试使用 swift 类进行解码:

let respo = NSData(base64EncodedString: responce, options: NSDataBase64DecodingOptions(rawValue: 0))

输入是 base64 编码的:rO0ABXNyABNqYXZhLnV0aWwuQXJyYXlMaXN0eIHSHZnHYZ......

期望的输出应该是可读的数据,但我得到的是:

<aced0005 73720013 6a617661 2e757469 6c2e4172 7261794c.....

我什至尝试用 NSUTF8 对 base64 解码数据进行编码、解码但没有用。

我做错了什么?是否可以将在服务器上用 Java(使用自定义 Java 对象)编码的数据解码回来? (我了解 Google 端点在两者之间进行序列化/反序列化)

提前致谢。

最佳答案

您应该使用 JSON 进行序列化,而不是手动将对象转换为字节串并对其进行 base64 编码。如果您使用 Endpoints 库,这会自动为您完成,只需在您的方法中返回对象即可。请参阅文档 here有关示例和 Endpoints 文档的其余部分以获取更多详细信息。要使用 API,您可以使用生成的 iOS 库,这些库也会根据示例为您执行此操作 here .除非您检查 HTTP 流量或使用 API Explorer,否则您实际上不会看到任何 JSON。 .

听起来您可能只是做了比预编码对象所需的更多工作,而不是让 Endpoints 为您完成。如果您确实需要手动将对象序列化为某些属性,您可以在端点端使用库,如 Jackson将对象序列化为字符串属性和 NSJSONSerialization在客户端将其转换回对象。

关于swift - 快速解码 base64 编码的应用引擎数据的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34203209/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com