---
title: Access HTTP services
description: AM passes an HTTP client object, httpClient, to server-side scripts. Server-side scripts can call HTTP services with the httpClient.send method. The method returns an HttpClientResponse object.
component: pingam
version: 7.3
page_id: pingam:scripting-guide:scripting-api-global-http-client
canonical_url: https://docs.pingidentity.com/pingam/7.3/scripting-guide/scripting-api-global-http-client.html
keywords: ["Scripts", "JSON"]
---

# Access HTTP services

AM passes an HTTP client object, `httpClient`, to server-side scripts. Server-side scripts can call HTTP services with the `httpClient.send` method. The method returns an `HttpClientResponse` object.

Configure the parameters for the HTTP client object by using the `org.forgerock.http.protocol` package. This package contains the `Request` class, which has methods for setting the URI and type of request.

The following example, taken from the default server-side Scripted authentication module script, uses these methods to call an online API to determine the longitude and latitude of a user based on their postal address:

```javascript
function getLongitudeLatitudeFromUserPostalAddress() {

    var request = new org.forgerock.http.protocol.Request();

    request.setUri("http://maps.googleapis.com/maps/api/geocode/json?address=" + encodeURIComponent(userPostalAddress));
    request.setMethod("GET");

    var response = httpClient.send(request).get();
    logResponse(response);

    var geocode = JSON.parse(response.getEntity());
    var i;

    for (i = 0; i < geocode.results.length; i++) {
        var result = geocode.results[i];
        latitude = result.geometry.location.lat;
        longitude = result.geometry.location.lng;

        logger.message("latitude:" + latitude + " longitude:" + longitude);
    }
}
```

HTTP client requests are synchronous and blocking until they return. You can, however, set a global timeout for server-side scripts. For details, see [Scripted Authentication Module Properties](../authentication-guide/auth-modules.html#authn-scripted).

Server-side scripts can access response data by using the methods listed in the table below.

**HTTP Client Response Methods**

| Method                               | Parameters | Return Type           | Description                                              |
| ------------------------------------ | ---------- | --------------------- | -------------------------------------------------------- |
| `HttpClientResponse.getCookies`      | `Void`     | `Map<String, String>` | Get the cookies for the returned response, if any exist. |
| `HttpClientResponse.getEntity`       | `Void`     | `String`              | Get the entity of the returned response.                 |
| `HttpClientResponse.getHeaders`      | `Void`     | `Map<String, String>` | Get the headers for the returned response, if any exist. |
| `HttpClientResponse.getReasonPhrase` | `Void`     | `String`              | Get the reason phrase of the returned response.          |
| `HttpClientResponse.getStatusCode`   | `Void`     | `Integer`             | Get the status code of the returned response.            |
| `HttpClientResponse.hasCookies`      | `Void`     | `Boolean`             | Indicate whether the returned response had any cookies.  |
| `HttpClientResponse.hasHeaders`      | `Void`     | `Boolean`             | Indicate whether the returned response had any headers.  |
