Newer Version Available
HTTP Classes
These classes expose the HTTP request and response functionality.
- Http Class. Use this class to initiate an HTTP request and response.
- HttpRequest Class: Use this class to programmatically create HTTP requests like GET, POST, PATCH, PUT, and DELETE.
- HttpResponse Class: Use this class to handle the HTTP response returned by HTTP.
- HttpRequest
- HTTP request types, such as GET, POST, PATCH, PUT, DELETE, TRACE, CONNECT, HEAD, and OPTIONS
- Request headers if needed
- Read and connection timeouts
- Redirects if needed
- Content of the message body
-
HttpResponse
- The HTTP status code
- Response headers if needed
- Content of the response body
This example makes an HTTP GET request to the external server passed to the getCalloutResponseContents method in the url parameter. This example also accesses the body of the returned response.
1public class HttpCalloutSample {
2
3 // Pass in the endpoint to be used using the string url
4 public String getCalloutResponseContents(String url) {
5
6 // Instantiate a new Http object
7 Http h = new Http();
8
9 // Instantiate a new HTTP request, specify the method (GET) as well as the endpoint
10 HttpRequest req = new HttpRequest();
11 req.setEndpoint(url);
12 req.setMethod('GET');
13
14 // Send the request, and return a response
15 HttpResponse res = h.send(req);
16 return res.getBody();
17 }
18}The previous example runs synchronously, meaning no further processing happens until the external web service returns a response. Alternatively, you can use the @future annotation to make the callout run asynchronously.
This example makes an HTTP POST request to the external server passed to the getPostCalloutResponseContents method in the url parameter. Replace Your_JSON_Content with the JSON content that you want to send in the callout.
1public class HttpPostCalloutSample {
2
3 // Pass in the endpoint to be used using the string url
4 public String getPostCalloutResponseContents(String url) {
5
6 // Instantiate a new Http object
7 Http h = new Http();
8
9 // Instantiate a new HTTP request
10 // Specify request properties such as the endpoint, the POST method, etc.
11 HttpRequest req = new HttpRequest();
12 req.setEndpoint(url);
13 req.setMethod('POST');
14 req.setHeader('Content-Type', 'application/json');
15 req.setBody('{Your_JSON_Content}');
16
17 // Send the request, and return a response
18 HttpResponse res = h.send(req);
19 return res.getBody();
20 }
21}To access an external server from an endpoint or a redirect endpoint, add the remote site to a list of authorized remote sites. Log in to Salesforce and from Setup, in the Quick Find box, enter Remote Site Settings, and then select Remote Site Settings.
Use the XML classes or JSON classes to parse XML or JSON content in the body of a request created by HttpRequest, or a response accessed by HttpResponse.