---
title: Headers object reference
description: Access the Headers object in Groovy exc?.request?.header or exc?.response?.header.
component: pingaccess
version: 9.0
page_id: pingaccess:reference_guides:pa_headers_object_ref
canonical_url: https://docs.pingidentity.com/pingaccess/9.0/reference_guides/pa_headers_object_ref.html
revdate: May 8, 2024
section_ids:
  purpose: Purpose
  examplegroovy-sample: ExampleGroovy sample
  method-summary: Method summary
  groovyheaderfield-object: GroovyHeaderField object
  examplegroovy-sample-2: ExampleGroovy sample
---

# Headers object reference

Access the Headers object in Groovy `exc?.request?.header` or `exc?.response?.header`.

## Purpose

The Headers object contains the HTTP header *(tooltip: \<div class="paragraph">
\<p>A section of an HTTP request or response that conveys additional information relevant to the client or server in the transaction.\</p>
\</div>)* information from the request made to an application or the HTTP header from a site response. The [Request](pa_request_object_ref.html) HTTP header is sent on to the site after the rules are evaluated. The [Response](pa_response_object_ref.html) HTTP header is returned to the client after the Response rules are evaluated.

Use the Headers object to add custom HTTP headers for a site, as demonstrated in the following example:

## ExampleGroovy sample

```
if ( !(exc.response) )
{
     // Set a custom header for the Site request
     def header = exc?.request?.header
     header?.add("X-PINGACCESS-SAMPLE", "SUCCESS")
}
pass()
```

## Method summary

| Method                                                    | Description                                                                                                                                                                                                                                                     |
| --------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `void add(String key, String val)`                        | Adds HTTP header fields for the request.&#xA;&#xA;If you use Groovy Rules to inject HTTP headers for the backend protected application, the script must sanitize the same headers from the original client request.                                             |
| `String getAccept()`                                      | Returns the acceptable response Content-Types expected by the User-Agent.                                                                                                                                                                                       |
| `void setAccept(String value)`                            | Sets the acceptable response Content-Types expected by the User-Agent.                                                                                                                                                                                          |
| `String getAuthorization()`                               | Returns the authentication credentials for HTTP authentication.                                                                                                                                                                                                 |
| `void setAuthorization(String username, String password)` | Sets authentication credentials for HTTP authentication.                                                                                                                                                                                                        |
| `String getConnection()`                                  | Returns the connection type preferred by the User-Agent.                                                                                                                                                                                                        |
| `void setConnection(List<String> values)`                 | Sets the connection type preferred by the User-Agent.                                                                                                                                                                                                           |
| `int getContentLength()`                                  | Returns the request body content length.                                                                                                                                                                                                                        |
| `void setContentLength(int length)`                       | Sets the request body content length.                                                                                                                                                                                                                           |
| `MediaType getContentType()`                              | Returns media type of Header with content type                                                                                                                                                                                                                  |
| `void setContentType(String)`                             | Sets the request body MIME type.                                                                                                                                                                                                                                |
| `Map <String, String[]> getCookies()`                     | Returns all cookies sent with the request.                                                                                                                                                                                                                      |
| `void setCookie(String)`                                  | Overwrites the request's cookie header with the passed string. This method cannot be used to set cookies in the response header.                                                                                                                                |
| `String getFirstCookieValue(String)`                      | Returns the first cookie in the cookie header.                                                                                                                                                                                                                  |
| `String getFirstValue(String)`                            | Returns the first value of the HTTP header specified by the name.                                                                                                                                                                                               |
| `void setDate(Date date)`                                 | Sets the date of the message in the Date HTTP header.                                                                                                                                                                                                           |
| `List<GroovyHeaderField> getAllHeaderFields()`            | Returns a list of GroovyHeaderFields.                                                                                                                                                                                                                           |
| `String getHost()`                                        | Returns the host name specified in the request.                                                                                                                                                                                                                 |
| `void setHost(String value)`                              | Sets the host name for the request to the Site.                                                                                                                                                                                                                 |
| `String getLocation()`                                    | Gets the redirect location Uniform Resource Locator (URL) *(tooltip: \<div class="paragraph">&#xA;\<p>Identifies a resource according to its internet location.\</p>&#xA;\</div>)* for the response.                                                            |
| `void setLocation(String value)`                          | Sets the redirect location URL for the response.                                                                                                                                                                                                                |
| `String getProxyAuthorization()`                          | Returns the proxy credentials.                                                                                                                                                                                                                                  |
| `void setProxyAuthorization(String value)`                | Sets the request proxy credentials.                                                                                                                                                                                                                             |
| `void setServer(String value)`                            | Sets the server name for the response.                                                                                                                                                                                                                          |
| `List<String> getValues(String name)`                     | Returns a list of string values for the supplied header name.                                                                                                                                                                                                   |
| `String getXForwardedFor()`                               | Returns the originating Internet Protocol (IP) *(tooltip: \<div class="paragraph">&#xA;\<p>The method by which data is sent across the internet from the source host to the destination host.\</p>&#xA;\</div>)* address of the client and the proxies, if set. |
| `void setXForwardedFor(String value)`                     | Sets the IP address for the client and the proxies.                                                                                                                                                                                                             |
| `boolean removeContentEncoding()`                         | Removes the Content-Encoding header value. Returns true if the value has been removed.                                                                                                                                                                          |
| `boolean removeContentLength()`                           | Removes the Content-Length header value. Returns true if the value has been removed.                                                                                                                                                                            |
| `boolean removeContentType()`                             | Removes the Content-Type header value. Returns true if the value has been removed.                                                                                                                                                                              |
| `boolean removeExpect()`                                  | Removes the Expect header value. Returns true if the value has been removed.                                                                                                                                                                                    |
| `boolean removeFields(String name)`                       | Removes the header value specified by the name parameter. Returns true if the value has been removed.                                                                                                                                                           |
| `boolean removeTransferEncoding()`                        | Removes the Transfer-Encoding header value. Returns true if the value has been removed.                                                                                                                                                                         |

## GroovyHeaderField object

**Method summary**

| Method                              | Description                 |
| ----------------------------------- | --------------------------- |
| `String getValue();`                | Returns the string's value. |
| `GroovyHeaderName getHeaderName();` | Returns the header's name.  |

## ExampleGroovy sample

The following example demonstrates usage of the `getAllHeaderFields()` method, which includes both request and response logging:

```
exc?.log.info "Display Headers: "
exc?.log.info "-->Request Headers"
reqHdrs = exc?.request?.header?.getAllHeaderFields()
reqLoop = reqHdrs?.iterator()
while (reqLoop?.hasNext()) {
  hdr = reqLoop?.next()
  exc.log.info "-->reqHeader  Name: "+hdr?.getHeaderName()?.toString()
  exc.log.info "-->reqHeader Value: "+ hdr?.getValue()
}
exc?.log.info "-->Response Headers"
exc?.log.debug "-->Response HTTP Status: "+ exc?.response?.statusCode
rspHdrs = exc?.response?.header?.getAllHeaderFields()
rspLoop = rspHdrs?.iterator()
while (rspLoop?.hasNext()) {
  hdr = rspLoop?.next ()
  exc.log.info "-->rspHeader  Name: "+ hdr?.getHeaderName()?.toString()
  exc.log.info "-->rspHeader Value: "+ hdr?.getValue()
}
exc?.log.info "Display Headers EOF: "
pass()
```
