本文介绍了Salesforce Apex页面中调用远端网络服务的实现过程。
注册远端网络服务
在使用Apex代码调用远端网络服务之前,首先需要在Salesforce中注册远端网络服务地址, 本文使用librarything.com提供的一个API, 输入为ISBN, 返回其对应的语言。
登录Salesforce后,选择Setup > Administer > Security Controls > Remote Site Settings
然后输入远端网络服务地址并保存
实现Apex Controller
Controller代码如下, isbn
用于接收UI的输入, language
向UI返回API的输出。
checkLanguage
方法实现API的调用。
public class BookController {
public String isbn { get; set; }
public String language { get; set; }
public void checkLanguage() {
Http http = new Http();
String url = 'http://www.librarything.com/api/thingLang.php?isbn=' + isbn;
HttpRequest req = new HttpRequest();
req.setEndpoint(url);
req.setMethod('GET');
HttpResponse res = http.send(req);
language = res.getBody();
}
}
Apex页面
页面代码如下
<apex:page controller="BookController" showChat="false" showHeader="false">
<apex:form >
ISBN : <apex:inputText value="{! isbn}" />
<apex:commandButton action="{! checkLanguage}" value="Check Language" reRender="result"/>
</apex:form>
Language : <apex:outputText id="result" value="{! language}"/>
</apex:page>