gpt4 book ai didi

javascript - 通过 Google Apps 脚本中的 API 组合 GET 和 POST 请求

转载 作者:行者123 更新时间:2023-11-29 20:33:28 25 4
gpt4 key购买 nike

我在 Google Apps 脚本中组合 GET 和 POST 请求时遇到问题。我正在尝试合并的内容如下,但我不断收到错误。

function DBMdownload() {

var queryId = "xxxxxxx”;
var url = "https://www.googleapis.com/doubleclickbidmanager/v1/queries/" + queryId;
var data = xxxxxxx);
var payload = JSON.stringify(data);
var options = {
'method': 'get',
'muteHttpExceptions': FLAGS.SHOW_HTTP_EXCEPTIONS,
'headers': {'Authorization': ('Bearer ' + ScriptApp.getOAuthToken())}
};

var options = {
'method': 'post',
'contentType': 'application/json',
'payload': payload,
'muteHttpExceptions': FLAGS.SHOW_HTTP_EXCEPTIONS,
'headers': {'Authorization': ('Bearer ' + ScriptApp.getOAuthToken())}
};

var response = UrlFetchApp.fetch(url, options);
}

最佳答案

更新::

  1. 不确定什么是“组合请求”,但显然您必须单独发送它们,每个请求都应该有自己的方法和请求对象的所有其他字段。您可以使用 UrlFetchAll 同时发送多个请求方法。
  2. 如果它是 JavaScript 对象并且您可以使用默认的 contentType,则在发送 post 请求时不必对负载进行字符串化。这是来自 documentation 的示例:
var resumeBlob = ...
var formData = {
'name': 'Bob Smith',
'email': 'bob@example.com',
'resume': resumeBlob
};
// Because payload is a JavaScript object, it is interpreted as
// as form data. (No need to specify contentType; it automatically
// defaults to either 'application/x-www-form-urlencoded'
// or 'multipart/form-data')
var options = {
'method' : 'post',
'payload' : formData
};
UrlFetchApp.fetch('https://httpbin.org/post', options);

否则,您必须显式设置 contentType 并提供字符串化的 JSON 作为有效负载:

  var data = ...
var options = {
'method' : 'post',
'contentType' : 'application/json',
'payload' : JSON.stringify(data)
};

var reposnse = UrlFetchApp.fetch(url, options);
  1. 您可以通过解析可通过getContentText() 访问的HTTP 响应数据来访问post 请求返回的JSON 数据。 :
var response = UrlFetchApp.fetch("http://www.google.com/");
var responseData = JSON.parse(response.getContentText());

关于javascript - 通过 Google Apps 脚本中的 API 组合 GET 和 POST 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57455771/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com