说明
 边缘函数中,可通过两种方式获得 
Request 对象:使用 Request 构造函数创建一个 Request 对象,用于 Fetch API 的操作。
使用 FetchEvent 对象 event.request,获得当前请求的 Request 对象。
构造函数
const request = new Request(input: string | Request, init?: RequestInit)
参数
参数名称  | 类型  | 必填  | 说明  | 
input  | 是  | URL 字符串或 Request 对象。  | |
options  | 否  | Request 对象初始化配置项。  | 
RequestInit
初始化 Request 对象的属性值选项。
属性名  | 类型  | 必填  | 默认值  | 说明  | 
method  | string  | 否  | GET  | 请求方法 ( GET、POST 等)。 | 
headers  | 否  | -  | 请求头部信息。  | |
body  | 否  | -  | 请求体。  | |
redirect  | string  | 否  | follow  | 重定向策略,支持  manual、error和 follow。 | 
maxFollow  | number  | 否  | 12  | 最大可重定向次数。  | 
version  | string  | 否  | HTTP/1.1  | HTTP 版本,支持  HTTP/1.0、HTTP/1.1 和 HTTP/2.0。 | 
copyHeaders  | boolean  | 否  | -  | 非 Web APIs 标准选项,表示是否拷贝传入的 Request 对象的 headers。  | 
eo  | 否  | -  | 非 Web APIs 标准选项,用于控制边缘函数处理该请求的行为。  | 
RequestInitEoProperties
非 Web APIs 标准选项,用于控制边缘函数处理该请求的行为。
参数名称  | 类型  | 必填  | 说明  | 
resolveOverride  | string  | 否  | IP 不允许带 scheme 以及端口号。 IPv6 无需使用方括号包裹。  | 
image  | 否  | 图片处理参数配置项。  | 
实例属性
body
// request.bodyreadonly body: ReadableStream;
bodyUsed
// request.bodyUsedreadonly bodyUsed: boolean;
标识请求体是否已读取。
headers
// request.headersreadonly headers: Headers;
method
// request.methodreadonly method: string;
请求方法,默认值为
GET。redirect
// request.redirectreadonly redirect: string;
请求重定向策略,可取值有:
follow、error、manual,默认为 follow。maxFollow
// request.maxFollowreadonly maxFollow: number;
请求最大重定向次数。
url
// request.urlreadonly url: string;
请求 url。
version
// request.versionreadonly version: string;
请求使用的 HTTP 协议版本。
eo
// request.versionreadonly eo: IncomingRequestEoProperties;
IncomingRequestEoProperties
属性名  | 类型  | 说明  | 示例值  | 
geo  | 描述客户请求的位置信息。  | -  | |
clientIp  | string  | 客户端IP地址  | 192.168.1.1  | 
uuid  | string  | 请求的唯一标识,作用同 EO-LOG-UUID  | -  | 
GeoProperties
描述客户请求的位置信息。
属性名  | 类型  | 说明  | 示例值  | 
asn  | number  | ASN  | 132203  | 
countryName  | string  | 国家名  | Singapore  | 
countryCodeAlpha2  | string  | 国家的 ISO-3166 alpha2 代码  | SG  | 
countryCodeAlpha3  | string  | 国家的 ISO-3166 alpha3 代码  | SGP  | 
countryCodeNumeric  | string  | 国家的 ISO-3166 numeric 代码  | 702  | 
regionName  | string  | 区域名  | -  | 
regionCode  | string  | 区域代码  | AA-AA  | 
cityName  | string  | 城市名  | singapore  | 
latitude  | number  | 纬度  | 1.29027  | 
longitude  | number  | 经度  | 103.851959  | 
实例方法
注意
arrayBuffer
request.arrayBuffer(): Promise<ArrayBuffer>;
blob
request.blob(): Promise<Blob>;
clone
request.clone(copyHeaders?: boolean): Request;
创建请求对象的副本。
参数
参数名称  | 类型  | 必填  | 说明  | 
copyHeaders  | boolean  | 否  | 开启复制请求头,默认值为  false,取值说明如下。true 复制原对象的请求头。           false 引用原对象的请求头。            | 
json
request.json(): Promise<object>;
获取请求体,解析结果为 
JSON。text
request.text(): Promise<string>;
获取请求体,解析结果为文本字符串。
formData
request.formData(): Promise<FormData>;
参数
参数名称  | 类型  | 必填  | 说明  | 
cookies  | 否  |         新的 Cookies 对象。        | 
示例代码
async function handleRequest() {const request = new Request('https://www.tencentcloud.com/');const response = await fetch(request);return response;}addEventListener('fetch', (event) => {event.respondWith(handleRequest());});
相关参考