Encoding Utilities

DEX455 - JSON、XML、ZIP、加密与正则表达式完全指南

📄 第 424 页 🎬 视频课程

课程章节介绍

同学们,咱们今天聊聊Apex里一个非常实用的小工具类,叫EncodingUtil。你别看它名字里带着“编码”,就觉得难懂,其实它特别简单,就是帮我们把数据转换成各种各样的格式,方便我们和外部系统打交道。 那它到底能做什么呢?主要有三类操作。 第一类,URL编码和解码。你上网的时候,网址里有些特殊字符,比如空格、问号、等于号,如果直接放在URL里,可能会被误解。这时候,我们就需要用“URL编码”把它们变成安全的格式,比如空格变成%20。在Apex里,如果你想对一个查询参数进行编码,比如要传一个时间戳,你就可以用EncodingUtil.urlEncode,指定编码方式,比如UTF-8,轻松搞定。 第二类,Base64编码和解码。Base64是一种把二进制数据转成纯文本的方式,在网络传输中特别常用。比如,你跟AWS服务集成,需要给请求头加一个HMAC签名,这个签名通常就是二进制数据,但HTTP头只能放文本,怎么办呢?直接用EncodingUtil.base64Encode,把签名转成Base64字符串,就可以放进Authorization头里了。反过来,收到Base64数据,也可以用base64Decode解码回原来的二进制。 第三类,十六进制转换。有时候我们需要把数据变成十六进制字符串,比如在实现HTTP Digest身份验证时,根据RFC 2617规范,我们需要计算SHA-1哈希值,然后把它转成十六进制摘要。EncodingUtil的convertToHex方法就能直接把二进制哈希值转成十六进制字符串,非常方便。当然,也有convertFromHex,把十六进制转回二进制。 其实总结下来,EncodingUtil这个类就是专门用来处理这些“转换杂务”的,尤其当你的代码需要调用外部Web服务,要传编码参数、身份验证凭证时,这些方法简直是救命稻草。你不用自己去写复杂的编码逻辑,直接用现成的,安全又高效。 好了,关于EncodingUtil咱们就讲这么多。下一节我们来看看怎么用这些方法和外部API做具体的集成。有什么问题可以随时打断我。

关键词

Apex Salesforce Developer Guide