HTTP Callout — GET Example

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

📄 第 384 页 🎬 视频课程

课程章节介绍

同学们,我们来一起看这个关于HTTP调用的示例。这个例子演示了怎么从Apex代码里向外部服务器发出一个HTTP GET请求。代码的大意是,你有一个方法叫`getCalloutResponseContents`,它接收一个`url`参数,然后在方法里面,会做这么几步:首先,实例化一个`Http`对象,然后创建一个`HttpRequest`对象,接着设置这个请求的端点为传入的URL,并把方法指定为GET。准备好之后,就用`Http`对象的`send`方法把请求发出去,最后从响应里拿到主体内容并返回。 这里要注意,这个调用是同步执行的。什么意思呢?就是说,当`send`方法一执行,代码就会停在这里等待,直到外部服务器返回响应,才会继续往下处理。这就像你打电话问别人一个问题,你必须等他回答完才能挂电话做别的事一样。 如果你不想让用户或者当前事务一直等着,有没有别的办法呢?有的。你可以把这个调用逻辑放到一个用`@future(callout=true)`注解标记的方法里,这样它就会以异步的方式运行。那样的话,代码把请求发出去之后,就不会原地等待,而是立刻继续执行后面的语句,Salesforce会在后台单独处理这次调用,等响应回来了再处理结果。这就相当于你发了一条信息过去,然后就去忙别的了,不用一直守着等回复。 希望这样讲,大家能分清同步调用和异步调用的区别,以及在这个例子里具体的实现步骤。

关键词

Apex Salesforce Developer Guide