Disclaimer: The opinions expressed herein are my own personal opinions and do not represent my employer’s view in any way.

Dev Note - HttpClient in SFRA (Salesforce)

posted on July 27, 2021 | tags: [ development, sfra, salesforce ]
main post image
Posting code I used for a HttpClient call in Salesforce Commerce Cloud SFRA

Using HttpClient in Salesforce Commerce Cloud

I needed a quick way to get a model for a view. For our API calls, I created services, profiles and credentials that are managed by SFCC. But that's overkill for a one off call. HttpClient is a way to make external calls, in SFCC/SFRA there's a little twist. Code to use the TypeScript HTTPClient in cartridge code:

function callExternalUrl(parameters) {
    var HTTPClient = require('dw/net/HTTPClient');
    var Logger = require('dw/system/Logger');

    if (!empty(parameters)) {
        var url = parameters.url;
        var userId = parameters.userId;
        var password = parameters.password;

        var httpClient = new HTTPClient();
        httpClient.setTimeout(2000);
        httpClient.open("GET", url, userId, password);
        httpClient.send();

        if (httpClient.statusCode == 200) {
            //confirm response
            Logger.getLogger("shop").info(
                httpClient.text
            );

            // do something with response object
            // var sourceObject = JSON.parse(httpClient.text);

            }
        } else {
            // error handling
            Logger.getLogger("shop").error(
                "An error occured with status code " + 
                httpClient.statusCode
            );
        }
    }

// ...
// var parameters = {
//     url: "",
//     userId: "",
//     password: ""
// }
// callExternalUrl(parameters)