Salesforce与网络服务的通信
在Salesforce中可以利用Apex类与远程站点的网络服务进行通信。当远程网络服务支持REST方法时,开发者可以利用Apex代码进行数据的操作。
设置远程站点
在设置界面下,搜索“远程站点”,点击“安全性控制”菜单项下的“远程站点设置”链接,即可进入远程站点的一览表。在此处可以新建、编辑、删除远程站点。这些远程站点可以作为网络服务接口。
所有远程站点界面
Apex REST请求
Apex中可以以HttpRequest类为核心和网络服务接口进行REST通信。HttpRequest类包括了“setEndpoint()”、“setMethod()”、“setHeader()”、“setBody()”等函数。
假设有一个网络服务接口“https://example.service.com/laguages”,可以对编程语言的名字进行操作。当执行GET请求时,会给出一个json的结果,包含了一个“languages”数组,里面是若干“language”对象。
GET请求
用以下代码可以实现GET请求:
public class LanguageCallouts {
public static HttpResponse makeGetCallout() {
Http http = new Http();
HttpRequest request = new HttpRequest();
// 设置网络服务接口的地址
request.setEndpoint('https://example.service.com/laguages');
// 设置REST方法
request.setMethod('GET');
// 发送HTTP请求
HttpResponse response = http.send(request);
// 检查HTTP通信结果状态代码
if (response.getStatusCode() == 200) {
// 将通信结果转化为Map类型变量
Map results = (Map) JSON.deserializeUntyped(response.getBody());