Anthony____
Anthony____

Reputation: 5

Google Apps Script doesn't recognize "Host" header in HTTP POST request?

I'm trying to query ArcGIS Rest API from Google Apps script. Building the request in Postman works perfectly fine, but when I get the code into apps script, I'm having trouble that I cant seem to figure out. Here's the code:

function callEsri () {
  var url = "https://services3.arcgis.com/GVgbJbqm8hXASVYi/arcgis/rest/services/Trailheads/FeatureServer/0/query"
  var params =
      {
  "async": true,
  "crossDomain": true,
  "url": "https://services3.arcgis.com/GVgbJbqm8hXASVYi/arcgis/rest/services/Trailheads/FeatureServer/0/query",
  "method": "POST",
  "headers": {
    "Content-Type": "application/x-www-form-urlencoded",
    "User-Agent": "PostmanRuntime/7.20.1",
    "Accept": "*/*",
    "Cache-Control": "no-cache",
    "Postman-Token": "[TOKEN]",
    "Host": "services3.arcgis.com",
    "Accept-Encoding": "gzip, deflate",
    "Content-Length": "125",
    "Connection": "keep-alive",
    "cache-control": "no-cache"
  },
  "data": {
    "f": "json",
    "where": "CITY_JUR LIKE '%Los Angeles%'",
    "outSr": "4326",
    "outFields": "TRL_NAME,ELEV_FT,CITY_JUR,PARK_NAME,FID"
  }
}
  var response = UrlFetchApp.fetch(url, params);
  var json = response.getContentText();
  var data = JSON.parse(json);
  Logger.log(data);
} 

The Error I am getting is: Execution failed: Attribute provided with invalid value: Header:Host (line 28, file "Code")

Any reason why Google is not recognizing this and is there a way to fix this? Any help/advice is greatly appreciated.

Upvotes: 0

Views: 1660

Answers (1)

Raserhin
Raserhin

Reputation: 2676

As @TheMaster has already noted in the comments. You are already specifying the Host in the url.

Also you can take a look at the official documentation of URLFetchApp.

And in case you want more information in the head here you have the mozilla documentation on that header and also the RFC specifying the Host header.

Upvotes: 1

Related Questions