tencent cloud

文档反馈

最后更新时间:2023-11-24 15:12:04
    Request 代表 HTTP 请求对象,基于 Web APIs 标准 Request 进行设计。
    说明
    边缘函数中,可通过两种方式获得 Request 对象:
    使用 Request 构造函数创建一个 Request 对象,用于 Fetch API 的操作。
    使用 FetchEvent 对象 event.request,获得当前请求的 Request 对象。

    构造函数

    const request = new Request(input: string | Request, init?: RequestInit)

    参数

    参数名称
    类型
    必填
    说明
    input
    string | Request
    URL 字符串或 Request 对象。
    options
    Request 对象初始化配置项。

    RequestInit

    初始化 Request 对象的属性值选项。
    属性名
    类型
    必填
    默认值
    说明
    method
    string
    GET
    请求方法 (GETPOST 等)。
    headers
    -
    请求头部信息。
    body
    string |Blob | ArrayBuffer | ArrayBufferView |ReadableStream
    -
    请求体。
    redirect
    string
    follow
    重定向策略,支持 manualerrorfollow
    maxFollow
    number
    12
    最大可重定向次数。
    version
    string
    HTTP/1.1
    HTTP 版本,支持 HTTP/1.0HTTP/1.1HTTP/2.0
    copyHeaders
    boolean
    -
    非 Web APIs 标准选项,表示是否拷贝传入的 Request 对象的 headers。
    eo
    -
    非 Web APIs 标准选项,用于控制边缘函数处理该请求的行为。

    RequestInitEoProperties

    非 Web APIs 标准选项,用于控制边缘函数处理该请求的行为。
    参数名称
    类型
    必填
    说明
    resolveOverride
    string
    用于 fetch 请求下覆盖原有的域名解析, 支持指定域名或者 IP 地址。更多说明如下:
    IP 不允许带 scheme 以及端口号。
    IPv6 无需使用方括号包裹。
    image
    图片处理参数配置项。
    cacheEverything
    boolean
    源站响应头是否缓存。
    cacheKey
    string
    用于指定自定义的缓存键。
    cacheTtl
    number
    用于指定缓存时长(单位秒),小于等于0表示不缓存。
    cacheTtlByStatus
    {[key: string]: number}
    根据状态码指定缓存时长(单位秒),小于等于0表示不缓存。
    示例:{'200-299': 3600, '404': 10, '500-599': 0}

    ImageProperties

    fetch 支持图片处理功能,参数配置项说明如下。该图片处理参数配置项与站点加速图片处理参数能力相同,您可以参考 图片处理了解站点加速内的图片处理能力。
    参数名称
    类型
    必填
    说明
    format
    string
    将原图转换为指定格式,支持 jpggifpngbmpwebpavifjp2jxrheif
    long
    number
    指定长边,短边未指定时,短边自适应。
    short
    number
    指定短边,长边未指定时,长边自适应。
    width
    number
    指定宽度,高度未指定时,高度自适应。
    height
    number
    指定高度,宽度未指定时,宽度自适应。

    实例属性

    body

    // request.body
    readonly body: ReadableStream;
    请求体,详情参见 ReadableStream

    bodyUsed

    // request.bodyUsed
    readonly bodyUsed: boolean;
    标识请求体是否已读取。

    headers

    // request.headers
    readonly headers: Headers;
    请求头部,详情参见 Headers

    method

    // request.method
    readonly method: string;
    请求方法,默认值为GET

    redirect

    // request.redirect
    readonly redirect: string;
    请求重定向策略,可取值有:followerrormanual,默认为 manual

    maxFollow

    // request.maxFollow
    readonly maxFollow: number;
    请求最大重定向次数。

    url

    // request.url
    readonly url: string;
    请求 url。

    version

    // request.version
    readonly version: string;
    请求使用的 HTTP 协议版本。

    eo

    // request.version
    readonly eo: IncomingRequestEoProperties;
    边缘函数提供的与当前请求相关的一些其他信息,详情参见 IncomingRequestEoProperties

    IncomingRequestEoProperties

    客户端请求 event.request 对象包含 eo 属性,其信息如下:
    属性名
    类型
    说明
    示例值
    geo
    描述客户请求的位置信息。
    -

    GeoProperties

    描述客户请求的位置信息。
    属性名
    类型
    说明
    示例值
    asn
    number
    132203
    countryName
    string
    国家名
    Singapore
    countryCodeAlpha2
    string
    国家的 ISO-3611 alpha2 代码
    SG
    countryCodeAlpha3
    string
    国家的 ISO-3611 alpha3 代码
    SGP
    countryCodeNumeric
    string
    国家的 ISO-3611 numeric 代码
    702
    regionName
    string
    区域名
    -
    regionCode
    string
    区域代码
    AA-AA
    cityName
    string
    城市名
    singapore
    latitude
    number
    纬度
    1.29027
    longitude
    number
    经度
    103.851959

    实例方法

    注意
    获取请求体方法,接收 HTTP body 最大字节数为 1M,超出大小会抛出 OverSize 异常。超出大小时推荐使用 request.body 流式读取,详情参见 ReadableStream

    arrayBuffer

    request.arrayBuffer(): Promise<ArrayBuffer>;
    获取请求体,解析结果为 ArrayBuffer

    blob

    request.blob(): Promise<Blob>;
    获取请求体,解析结果为 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>;
    获取响应体,解析结果为 FormData
    kie 值。

    参数

    参数名称
    类型
    必填
    说明
    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());
    });

    相关参考

    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持