46.16. 使用 Raw 操作
将 HTTP 请求发送到 Salesforce,并完全控制调用的所有方面。必须在路由中执行任何请求和响应正文的序列化或反序列化。Content-Type
HTTP 标头将根据 format
选项自动设置,但可以使用 rawHttpHeaders
选项覆盖。
参数 | 类型 | 描述 | 默认值 | 必填 |
---|---|---|---|---|
请求正文 |
| HTTP 请求的正文 | ||
rawPath |
| 域名后面的端点 URL 部分,如 '/services/data/v51.0/sobjects/Account/' | x | |
rawMethod |
| HTTP 方法 | x | |
rawQueryParameters |
| 以逗号分隔的消息标头列表,以作为查询参数包含。不要 URL-encode 值,因为会自动完成此操作。 | ||
rawHttpHeaders |
| 以逗号分隔的消息标头列表,以作为 HTTP 标头包括 |
46.16.1. 查询示例
在本例中,我们将向 REST API 发送查询。查询必须在名为 "q" 的 URL 参数中传递,因此我们将创建一个名为 q 的消息标头,并告知原始操作将该消息标头作为 URL 参数包括:
from("direct:queryExample") .setHeader("q", "SELECT Id, LastName FROM Contact") .to("salesforce:raw?format=JSON&rawMethod=GET&rawQueryParameters=q&rawPath=/services/data/v51.0/query") // deserialize JSON results or handle in some other way
46.16.2. SObject 示例
在本例中,我们将在 create
操作中传递 REST API。由于 原始
操作不执行任何序列化,因此我们确保在消息正文中传递 XML
from("direct:createAContact") .setBody(constant("<Contact><LastName>TestLast</LastName></Contact>")) .to("salesforce:raw?format=XML&rawMethod=POST&rawPath=/services/data/v51.0/sobjects/Contact")
响应为:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <Result> <id>0034x00000RnV6zAAF</id> <success>true</success> </Result>