9.React Native之Fetch网络请求封装;

目录1.Fetch介绍2.fetch参数介绍2.1Request2.2Headers2.3Response2.4Body3.Fetch使用介绍3.1上传JSON4.fetch封装1.Fetch介绍Fetch核心在于对HTTP的抽象,包括 Request,Response,Headers,Body,以及用于初始化异步请求的 global fetch。Fet...
摘要由CSDN通过智能技术生成

目录

1.Fetch介绍

2.fetch参数介绍

2.1Request

2.2Headers

2.3Response

2.4Body

3.Fetch使用介绍

3.1上传JSON

4.fetch封装


1.Fetch介绍

Fetch核心在于对HTTP的抽象,包括 Request,Response,Headers,Body,以及用于初始化异步请求的 global fetch。Fetch API 提供了一个 JavaScript接口,用于访问和操纵HTTP管道的部分,例如请求和响应。它还提供了一个全局 fetch()方法,该方法提供了一种简单,合理的方式来跨网络异步获取资源。

以前经常使用XMLHttpRequest(即俗称的ajax)或是其他的网络API进行异步网络请求,Fetch提供了许多与XMLHttpRequest相同的功能,但被设计成更具可扩展性和高效性。

请注意,fetch规范与jQuery.ajax()主要有两种方式的不同,牢记:
a.当接收到一个代表错误的 HTTP 状态码时,从 fetch()返回的 Promise 不会被标记为 reject, 即使该
 HTTP 响应的状态码是 404 或 500。相反,它会将 Promise 状态标记为 resolve (但是会将 resolve
 的返回值的 ok 属性设置为 false ),仅当网络故障时或请求被阻止时,才会标记为 reject。
b.默认情况下,fetch 不会从服务端发送或接收任何 cookies, 如果站点依赖于用户 session,则会导致未
经认证的请求(要发送 cookies,必须设置 credentials 选项)。

2.fetch参数介绍

RN中声明的全局fetch方法,Fetch主要包含Request,Headers,Response,Body四部分;

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

2.1Request

Request在Fetch中用于表示资源请求,Request() 构造器创建一个新的Request 对象。以下Request参数说明:

var myRequest = new Request(input, init);
input
定义你想要fetch的资源。可以是下面两者之一:
a.一个直接包含你希望fetch的资源的URL的 USVString
b.一个 Request 对象.
init 参数可选
一个可选对象,包含希望被包括到请求中的各种自定义选项。可用的选项如下:
a.method: 请求的方法,例如:GET, POST。
b.headers: 任何你想加到请求中的头,其被放在Headers对象或内部值为ByteString 的对象字面量中。
c.body: 任何你想加到请求中的body,可以是Blob, BufferSource, FormData, URLSearchParams, 
或 USVString对象。注意GET 和 HEAD请求没有body。
d.mode: 请求的模式, 比如 cors, no-cors, same-origin, 或 navigate。默认值应该为 cors。但在
Chrome中,Chrome 47 之前的版本默认值为 no-cors ,自Chrome 47起,默认值为same-origin。
e.credentials: 想要在请求中使用的credentials:: omit, same-origin, 或 include。默认值应该
为omit。但在Chrome中,Chrome 47 之前的版本默认值为 same-origin ,自Chrome 47起,默认值为include。
f.cache: 请求中想要使用的cache mode 
g.redirect: 对重定向处理的模式: follow, error, or manual。在Chrome中,Chrome 47 之前的版
本默认值为 manual ,自Chrome 47起,默认值为follow。
h.referrer: 一个指定了no-referrer, client, 或一个 URL的 USVString 。默认值是client.
i.integrity: 包括请求的 subresource integrity 值 (e.g., sha256-BpfBw7ivV8q2jLiT13fxDYAe2tJllusRSZ273h2nFSE=).

input是必填参数,通常填写请求的远程地址,http://mywebsite/apiinterface;

init填写请求的参数,移动端开发常用参数有method,headers,body;

2.2Headers

Headers 接口允许您对HTTP请求和响应头执行各种操作。 这些操作包括检索,设置,添加和删除。 一个Headers对象具有关联的头列表,它最初为空,由零个或多个键值对组成。你可以使用 append() 方法添加 之类的方法添加到此。在该接口的所有方法中,标题名称由不区分大小写的字节序列匹配。

请求或者响应头已经被占用的Header名称是不能用作其他用途;Header创建:

var myHeaders = new Headers(init);

init 参数可

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值