跳到主要内容
在本页上

HTTP 请求(fetch)

Fetch API 允许您在 Deno Deploy 中发出出站 HTTP 请求。这是一个 Web 标准,并具有以下接口

  • fetch() - 允许您发出出站 HTTP 请求的方法
  • Request - 代表 fetch() 的请求资源
  • Response - 代表 fetch() 的响应资源
  • Headers - 代表请求和响应的 HTTP 标头。

此页面显示了 fetch() 方法的用法。您可以点击上面的其他接口以了解更多信息。

Fetch 还支持从文件 URL 中获取以检索静态文件。有关静态文件的更多信息,请参阅 文件系统 API 文档.

fetch() 跳转到标题

fetch() 方法向提供的资源发起网络请求,并返回一个承诺,该承诺在响应可用后解析。

function fetch(
  resource: Request | string,
  init?: RequestInit,
): Promise<Response>;

参数 跳转到标题

名称 类型 可选 描述
资源 请求
USVString
false 资源可以是请求对象或 URL 字符串。
init RequestInit true init 对象允许您对请求应用可选参数。

fetch() 的返回类型是一个承诺,该承诺解析为 Response.

示例 跳转到标题

以下 Deno Deploy 脚本针对每个传入请求向 GitHub API 发出 fetch() 请求,然后从处理程序函数返回该响应。

async function handler(req: Request): Promise<Response> {
  const resp = await fetch("https://api.github.com/users/denoland", {
    // The init object here has an headers object containing a
    // header that indicates what type of response we accept.
    // We're not specifying the method field since by default
    // fetch makes a GET request.
    headers: {
      accept: "application/json",
    },
  });
  return new Response(resp.body, {
    status: resp.status,
    headers: {
      "content-type": "application/json",
    },
  });
}

Deno.serve(handler);