Google 脚本 API routexl 错误 409

Google Script API routexl error 409

我正在尝试制作一个脚本,在 routexl API 的帮助下计算出通过多个位置的最快路线。但是,我尝试的所有操作似乎都出现错误 409 Truncated 服务器响应。我的代码如下。

 function myFunctionpost() {
      var url = "https://api.routexl.nl/distances";
      var places = [{"address":"1","lat":"52.05429","lng":"4.248618"},{"address":"2","lat":"52.076892","lng":"4.26975"},{"address":"3","lat":"51.669946","lng":"5.61852"}];
      var locations = JSON.stringify(places);
      var headers = { 
          "Authorization":"Basic " + Utilities.base64Encode("Username:password"),
          "Content-Type":"application/json"
      };
      var options = { 
          'method' : 'post',
          'headers' : headers,
          'contentType': 'application/json',
          'payload' : locations,
          'muteHttpExceptions' : true
      };
      var response = UrlFetchApp.fetch(url, options);
      //var json = response.getContentText();
      //var data = JSON.parse(json);
      Logger.log(response);
  }

409 错误表示找到 no input。我不是 Google 应用程序专家,但 RouteXL API 期望 "locations" 作为输入参数。在您的示例中,发布的位置 JSON 没有位置键。

更新:在对 Google Apps 脚本进行一些测试后,我还发现需要调整 ContentType。

这是一个对我有用的例子:

function myFunctionpost() {
      var url = "https://api.routexl.nl/distances";
      var places = [{"address":"1","lat":"52.05429","lng":"4.248618"},{"address":"2","lat":"52.076892","lng":"4.26975"},{"address":"3","lat":"51.669946","lng":"5.61852"}];
      var locations = JSON.stringify(places);
      var headers = { 
          "Authorization":"Basic " + Utilities.base64Encode("username:password")
      };
      var options = { 
          'method' : 'post',
          'headers' : headers,
          'contentType': 'application/x-www-form-urlencoded',
          'payload' : {'locations': locations},
          'muteHttpExceptions' : true
      };
      var response = UrlFetchApp.fetch(url, options);
      //var json = response.getContentText();
      //var data = JSON.parse(json);
      Logger.log(response);
  }