HTTP Header Support in SOAP Callouts

DEX455 - Apex 集成与工具完全指南:Callouts、命名凭据、WSDL2Apex、Mock 测试

📄 第 370 页 🎬 视频课程

课程章节介绍

同学们,今天我们来说一个很实用的技巧:在Salesforce里调用外部Web服务时,怎么设置HTTP标头。 你可能会遇到这样的场景——比如你想在请求里加一个授权信息,或者传递某个特定的Cookie。这时候,就可以利用生成的Web服务代理类,也就是我们常说的“树桩”类,里面有两个特殊的属性:`inputHttpHeaders_x` 和 `outputHttpHeaders_x`。 简单说,`inputHttpHeaders_x` 是用来设置你要发出去的请求头。如果你给它赋了值,它会完全覆盖掉原本那些标准的请求头,只按你指定的来。而 `outputHttpHeaders_x` 呢,是调用完成后用来读取对方返回的响应头,方便你检查服务端给你回了什么额外信息。 但这里我要特别提醒你一个安全问题:千万别直接把授权信息硬编码在代码里。这样做既不安全,也不好维护。正确的做法是用Salesforce的“命名凭据”,它提供了一个声明式、又安全的方式,来帮我我们管理所有外部服务的用户名、密码或者令牌这些敏感信息。你只要在设置里创建好命名凭据,然后在代码里引用它,Salesforce会自动帮你处理身份验证,把对应的HTTP头带上,根本不用你自己去拼授权字符串。 记住这个原则:用`inputHttpHeaders_x` 自定义头,但凭据管理交给命名凭据,这样你的集成既灵活又安全。

关键词

Apex Salesforce Developer Guide