code: private HttpHeaders createHeaders(String reportUrl, String version)
        throws AuthenticationException {
      HttpHeaders httpHeaders = new HttpHeaders();
      httpHeaders.setAuthorization(
          authorizationHeaderProvider.getAuthorizationHeader(session, reportUrl));
      httpHeaders.setUserAgent(userAgentCombiner.getUserAgent(session.getUserAgent()));
      httpHeaders.set("developerToken", session.getDeveloperToken());
      httpHeaders.set("clientCustomerId", session.getClientCustomerId());
      ReportingConfiguration reportingConfiguration = session.getReportingConfiguration();
      if (reportingConfiguration != null) {
        reportingConfiguration.validate(version);
        if (reportingConfiguration.isSkipReportHeader() != null) {
          httpHeaders.set("skipReportHeader",
              Boolean.toString(reportingConfiguration.isSkipReportHeader()));
        }
        if (reportingConfiguration.isSkipColumnHeader() != null) {
          httpHeaders.set("skipColumnHeader",
              Boolean.toString(reportingConfiguration.isSkipColumnHeader()));
        }
        if (reportingConfiguration.isSkipReportSummary() != null) {
          httpHeaders.set("skipReportSummary",
              Boolean.toString(reportingConfiguration.isSkipReportSummary()));
        }
        if (reportingConfiguration.isIncludeZeroImpressions() != null) {
          httpHeaders.set(
              "includeZeroImpressions",
              Boolean.toString(reportingConfiguration.isIncludeZeroImpressions()));
        }
        if (reportingConfiguration.isUseRawEnumValues() != null) {
          httpHeaders.set(
              "useRawEnumValues",
              Boolean.toString(reportingConfiguration.isUseRawEnumValues()));
        }
      }
      return httpHeaders;
    }
docs: Creates the http headers object for this request, populated from data in
  the session.
  @throws AuthenticationException If OAuth authorization fails.