0

再会,

我有一个 Wialon 本地服务器(GPS 监控系统),并计划使用时间驱动的可安装触发器更新共享的 Google 表。

根据Wialon 文档,在浏览器中输入我的 API 调用时,我可以获得所需的响应。

但是,在 GAS 中,尝试从响应中检索数据时出现以下错误。

API调用:

  let apiURL = `http://my.tracking.site.come/wialon/ajax.html?svc=token/login&params={"token":"5dce19710a5e26ab8b7b898XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXFCEED7DC03BC48FF5F8"}`
  console.log(apiURL) // This URL works in a web browser as expected
  var resText = UrlFetchApp.fetch(apiURL).getContentText() // error is raised on this line
  console.log(resText)

错误:

11:48:27 AM Error   
Exception: Invalid argument: http://my.tracking.site.come/wialon/ajax.html?svc=token/login&params={"token":"5dce19710a5e26ab8b7b898XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXFCEED7DC03BC48FF5F8"}
wialonLogin @ wialon.gs:20

请告知我在这里做错了什么,因为我对 GAS 和 Wialon Remote API 的经验都很少……将不胜感激。

谢谢。

4

1 回答 1

2

解决方案是对 URL 进行编码。

let apiURL = `http://my.tracking.site.come/wialon/ajax.html?svc=token/login&params={"token":"5dce19710a5e26ab8b7b898XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXFCEED7DC03BC48FF5F8"}`
  console.log(apiURL) // This URL works in a web browser as expected
  var urlEncoded = encodeURI(apiURL);
  var resText = UrlFetchApp.fetch(urlEncoded).getContentText() // error is raised on this line
  console.log(resText)
于 2021-01-27T12:40:46.447 回答