提取资源并通过互联网与其他主机通信。
此服务允许脚本与其他应用通信或访问其他资源 通过提取网址在网络上实现脚本可以使用网址提取服务来发出 HTTP 和 HTTPS 请求 请求并接收响应。网址提取服务使用 Google 的网络基础架构 提高效率和扩缩能力
使用此服务发出的请求来自一组 IP 范围。如果您遇到以下情况,可以查询完整的 IP 地址列表: 您需要将这些请求列入许可名单或批准这些请求。
此服务要求使用 https://www.googleapis.com/auth/script.external_request
范围。在大多数情况下,Apps 脚本会自动检测并包含脚本所需的范围,
但如果您将范围设置为
明确指定,您必须手动添加此范围才能使用 UrlFetchApp
。
另请参阅
方法
方法 | 返回类型 | 简介 |
---|---|---|
fetch(url) | HTTPResponse | 发出提取网址的请求。 |
fetch(url, params) | HTTPResponse | 使用可选的高级参数发出提取网址的请求。 |
fetchAll(requests) | HTTPResponse[] | 使用可选的高级参数发出多个网址提取请求。 |
getRequest(url) | Object | 返回操作被调用时发出的请求。 |
getRequest(url, params) | Object | 返回操作被调用时发出的请求。 |
详细文档
fetch(url)
发出提取网址的请求。
这适用于 HTTP 和 HTTPS。
// The code below logs the HTML code of the Google home page. var response = UrlFetchApp.fetch("http://www.google.com/"); Logger.log(response.getContentText());
参数
名称 | 类型 | 说明 |
---|---|---|
url | String | 要获取的网址。网址最多可包含 2,082 个字符。 |
返回
HTTPResponse
- HTTP 响应数据。
授权
使用此方法的脚本需要获得以下一个或多个范围的授权:
-
https://www.googleapis.com/auth/script.external_request
fetch(url, params)
使用可选的高级参数发出提取网址的请求。
这适用于 HTTP 和 HTTPS。
// Make a GET request and log the returned content. var response = UrlFetchApp.fetch('http://www.google.com/'); Logger.log(response.getContentText());
// Make a POST request with form data. var resumeBlob = Utilities.newBlob('Hire me!', 'text/plain', 'resume.txt'); 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);
// Make a POST request with a JSON payload. var data = { 'name': 'Bob Smith', 'age': 35, 'pets': ['fido', 'fluffy'] }; var options = { 'method' : 'post', 'contentType': 'application/json', // Convert the JavaScript object to a JSON string. 'payload' : JSON.stringify(data) }; UrlFetchApp.fetch('https://httpbin.org/post', options);
参数
名称 | 类型 | 说明 |
---|---|---|
url | String | 要获取的网址。网址最多可包含 2,082 个字符。 |
params | Object | 用于指定高级参数的可选 JavaScript 对象,定义如下。 |
高级参数
名称 | 类型 | 说明 |
---|---|---|
contentType | String | 内容类型(默认为 'application/x-www-form-urlencoded').另一个内容类型示例是“application/xml; charset=utf-8'。 |
headers | Object | 请求的 HTTP 标头的 JavaScript 键值对映射 |
method | String | 请求的 HTTP 方法:get 、delete 、
patch 、post 或 put 。默认值为 get 。 |
payload | String | 请求的负载(即 POST 正文)。特定 HTTP 方法(例如 GET)不接受有效负载。它可以是字符串、字节数组 Blob 或 JavaScript 对象将 JavaScript 对象解释为表单字段的映射 名称转换为值,其中值可以是字符串或 blob。 |
useIntranet | Boolean | 已弃用。该命令会指示提取操作,以解析指定的 通过(已弃用的)SDC 与您的网域关联的内网中的网址 |
validateHttpsCertificates | Boolean | 如果为 false ,则提取会忽略
HTTPS 请求的无效证书默认值为 true 。 |
followRedirects | Boolean | 如果 false ,则抓取不会自动执行
遵循 HTTP 重定向;它会返回原始 HTTP 响应默认值为 true 。 |
muteHttpExceptions | Boolean | 如果为 true ,则提取不会抛出
异常,而是返回 HTTPResponse 。默认值为 false 。 |
escaping | Boolean | 如果网址中的 false 个保留字符不是
已转义。默认值为 true 。 |
返回
HTTPResponse
- HTTP 响应数据。
授权
使用此方法的脚本需要获得以下一个或多个范围的授权:
-
https://www.googleapis.com/auth/script.external_request
fetchAll(requests)
使用可选的高级参数发出多个网址提取请求。
这适用于 HTTP 和 HTTPS。
// Make both a POST request with form data, and a GET request. var resumeBlob = Utilities.newBlob('Hire me!', 'text/plain', 'resume.txt'); 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 defaults to either // 'application/x-www-form-urlencoded' or 'multipart/form-data') var request1 = { 'url': 'https://httpbin.org/post', 'method' : 'post', 'payload' : formData }; // A request may also just be a URL. var request2 = 'https://httpbin.org/get?key=value'; UrlFetchApp.fetchAll([request1, request2]);
参数
名称 | 类型 | 说明 |
---|---|---|
requests | Object[] | 一组网址或 JavaScript 对象,用于指定请求的定义 。 |
高级参数
名称 | 类型 | 说明 |
---|---|---|
url | String | 要获取的网址。网址最多可包含 2,082 个字符。 |
contentType | String | 内容类型(默认为 'application/x-www-form-urlencoded').另一个内容类型示例是“application/xml; charset=utf-8'。 |
headers | Object | 请求的 HTTP 标头的 JavaScript 键值对映射 |
method | String | 请求的 HTTP 方法:get 、delete 、
patch 、post 或 put 。默认值为 get 。 |
payload | String | 请求的负载(即 POST 正文)。特定 HTTP 方法(例如 GET)不接受有效负载。它可以是字符串、字节数组 Blob 或 JavaScript 对象将 JavaScript 对象解释为表单字段的映射 名称转换为值,其中值可以是字符串或 blob。 |
useIntranet | Boolean | 已弃用。该命令会指示提取操作,以解析指定的 通过(已弃用的)SDC 与您的网域关联的内网中的网址 |
validateHttpsCertificates | Boolean | 如果为 false ,则提取会忽略
HTTPS 请求的无效证书默认值为 true 。 |
followRedirects | Boolean | 如果 false ,则抓取不会自动执行
遵循 HTTP 重定向;它会返回原始 HTTP 响应默认值为 true 。 |
muteHttpExceptions | Boolean | 如果为 true ,则提取不会抛出
异常,而是返回 HTTPResponse 。默认值为 false 。 |
escaping | Boolean | 如果为 false ,则不计算网址中的保留字符
已转义。默认值为 true 。 |
返回
HTTPResponse[]
- 来自每个输入请求的 HTTP 响应数据数组。
授权
使用此方法的脚本需要获得以下一个或多个范围的授权:
-
https://www.googleapis.com/auth/script.external_request
getRequest(url)
返回操作被调用时发出的请求。
此方法实际上不会发出请求。
// The code below logs the value for every key of the returned map. var response = UrlFetchApp.getRequest("http://www.google.com/"); for(i in response) { Logger.log(i + ": " + response[i]); }
参数
名称 | 类型 | 说明 |
---|---|---|
url | String | 要查找的网址。网址最多可包含 2,082 个字符。 |
返回
Object
- 字段名称到值的映射。该映射至少包含以下键:url
、
method
、contentType
、payload
和headers
。
授权
使用此方法的脚本需要获得以下一个或多个范围的授权:
-
https://www.googleapis.com/auth/script.external_request
getRequest(url, params)
返回操作被调用时发出的请求。
此方法实际上不会发出请求。
参数
名称 | 类型 | 说明 |
---|---|---|
url | String | 要查找的网址。网址最多可包含 2,082 个字符。 |
params | Object | 可选的 JavaScript 对象,用于指定下面定义的高级参数。 |
高级参数
名称 | 类型 | 说明 |
---|---|---|
contentType | String | 内容类型(默认为 'application/x-www-form-urlencoded').另一个内容类型示例是“application/xml; charset=utf-8'。 |
headers | Object | 请求的 HTTP 标头的 JavaScript 键值对映射 |
method | String | 请求的 HTTP 方法:get 、delete 、
patch 、post 或 put 。默认值为 get 。 |
payload | String | 请求的负载(即 POST 正文)。特定 HTTP 方法(例如 GET)不接受有效负载。它可以是字符串、字节数组 Blob 或 JavaScript 对象将 JavaScript 对象解释为表单字段的映射 名称转换为值,其中值可以是字符串或 blob。 |
useIntranet | Boolean | 已弃用。该命令会指示提取操作,以解析指定的 通过(已弃用的)SDC 与您的网域关联的内网中的网址 |
validateHttpsCertificates | Boolean | 如果为 false ,则提取会忽略
HTTPS 请求的无效证书默认值为 true 。 |
followRedirects | Boolean | 如果 false ,则抓取不会自动执行
遵循 HTTP 重定向;它会返回原始 HTTP 响应默认值为 true 。 |
muteHttpExceptions | Boolean | 如果为 true ,则提取不会抛出
异常,而是返回 HTTPResponse 。默认值为 false 。 |
escaping | Boolean | 如果网址中的 false 个预留字符不是
已转义。默认值为 true 。 |
返回
Object
- 字段名称到值的映射。该映射至少包含以下键:url
、
method
、contentType
、payload
和headers
。
授权
使用此方法的脚本需要获得以下一个或多个范围的授权:
-
https://www.googleapis.com/auth/script.external_request