Use the XML classes or JSON classes to parse XML or JSON content in the body of a request created by HttpRequest.
The following example illustrates how you can use an authorization header with a request and handle the response.
public class AuthCallout { public void basicAuthCallout(){ HttpRequest req = new HttpRequest(); req.setEndpoint('http://www.yahoo.com'); req.setMethod('GET'); // Specify the required user name and password to access the endpoint // As well as the header and header information String username = 'myname'; String password = 'mypwd'; Blob headerValue = Blob.valueOf(username + ':' + password); String authorizationHeader = 'Basic ' + EncodingUtil.base64Encode(headerValue); req.setHeader('Authorization', authorizationHeader); // Create a new http object to send the request object // A response object is generated as a result of the request Http http = new Http(); HTTPResponse res = http.send(req); System.debug(res.getBody()); } }
To compress the data you send, use setCompressed.
HttpRequest req = new HttpRequest(); req.setEndPoint('my_endpoint'); req.setCompressed(true); req.setBody('some post body');
If a response comes back in compressed format, getBody recognizes the format, uncompresses it, and returns the uncompressed value.
The following are methods for HttpRequest. All are instance methods.
public Blob getBodyAsBlob()
Type: Blob
public Dom.Document getBodyDocument()
Type: Dom.Document
Use this method as a shortcut for:
String xml = httpRequest.getBody(); Dom.Document domDoc = new Dom.Document(xml);
public Boolean getCompressed()
Type: Boolean
public String getEndpoint()
Type: String
public String getMethod()
Type: String
Examples of return values:
public Void setBody(String body)
Type: Void
Limit: 6 MB for synchronous Apex or 12 MB for asynchronous Apex.
The HTTP request and response sizes count towards the total heap size.
public Void setBodyAsBlob(Blob body)
Type: Void
Limit: 6 MB for synchronous Apex or 12 MB for asynchronous Apex.
The HTTP request and response sizes count towards the total heap size.
public Void setBodyDocument(Dom.Document document)
Type: Void
Limit: 6 MB for synchronous Apex or 12 MB for asynchronous Apex.
public Void setClientCertificate(String clientCert, String password)
Type: Void
If the server requires a client certificate for authentication, set the client certificate PKCS12 key store and password.
public Void setClientCertificateName(String certDevName)
Type: Void
public Void setCompressed(Boolean flag)
Type: Void
public Void setEndpoint(String endpoint)
https://my_endpoint.example.com/some_path
callout:My_Named_Credential/some_path
Type: Void
public Void setMethod(String method)
Type: Void
You can also use this method to set any required options.
public Void setTimeout(Integer timeout)
Type: Void
The timeout can be any value between 1 and 120,000 milliseconds.
public String toString()
Type: String