@java.lang.Override
    public /* nullable */ java.lang.String getHeadersOrDefault(
        java.lang.String key,
        /* nullable */
        java.lang.String defaultValue) {
      if (key == null) {
        throw new NullPointerException("map key");
      }
      java.util.Map<java.lang.String, java.lang.String> map = internalGetHeaders().getMap();
      return map.containsKey(key) ? map.get(key) : defaultValue;
    }
<pre>
HTTP request headers.

This map contains the header field names and values.
Headers can be set when running the
[task is created][google.cloud.tasks.v2beta2.CloudTasks.CreateTask] or
[task is created][google.cloud.tasks.v2beta2.CloudTasks.BufferTask].

These headers represent a subset of the headers that will accompany the
task's HTTP request. Some HTTP request headers will be ignored or replaced.

A partial list of headers that will be ignored or replaced is:

* Any header that is prefixed with "X-CloudTasks-" will be treated
as service header. Service headers define properties of the task and are
predefined in CloudTask.
* Host: This will be computed by Cloud Tasks and derived from
  [HttpRequest.url][google.cloud.tasks.v2beta2.HttpRequest.url].
* Content-Length: This will be computed by Cloud Tasks.
* User-Agent: This will be set to `"Google-Cloud-Tasks"`.
* `X-Google-*`: Google use only.
* `X-AppEngine-*`: Google use only.

`Content-Type` won't be set by Cloud Tasks. You can explicitly set
`Content-Type` to a media type when the
 [task is created][google.cloud.tasks.v2beta3.CloudTasks.CreateTask].
 For example, `Content-Type` can be set to `"application/octet-stream"` or
 `"application/json"`.

Headers which can have multiple values (according to RFC2616) can be
specified using comma-separated values.

The size of the headers must be less than 80KB.
</pre>

<code>map&lt;string, string&gt; headers = 3;</code>
java-tasks/proto-google-cloud-tasks-v2beta2/src/main/java/com/google/cloud/tasks/v2beta2/HttpRequest.java