REQUEST , GET , POST

REQUEST是先接GET再接POST。效率会低一点。

用request的时候,url的参数名不能跟要post的参数名相同

### uni.requestGETPOST 请求的区别及用法 #### GET 请求的特点和使用场景 GET 方法用于从服务器获取资源。当发起 GET 请求时,所有的查询参数都附加在 URL 后面作为查询字符串的一部分。这种方式适合于数据量较小的情况,并且这些数据通常不会改变服务器上的任何状态。 对于 UniApp 应用来说,在 `uni.request` 函数中通过设置 `method: 'GET'` 来指定 HTTP 请求的方式为 GET[^2]。如果需要发送额外的数据给服务端,则可以通过 `data` 属性来传递键值对形式的对象;然而需要注意的是,由于浏览器地址栏长度有限制,所以不适合携带大量或者敏感的信息。 另外值得注意的一点是在某些情况下,比如要传送数组类型的参数时,可能遇到问题——因为默认情况下无法直接把 JavaScript 数组转化为合适的 URL 查询串格式。这时可以利用自定义拦截器处理这个问题,确保 GET 请求能够正确传输复杂结构的数据[^4]。 ```javascript // 使用qs库解析并转换数组参数 import qs from 'qs'; uni.addInterceptor('request', { invoke(args) { const { data, method } = args; if (method === "GET") { let newData = qs.stringify(data, { arrayFormat: 'repeat' }); delete args.data; args.url += '?' + newData; } }, }); ``` #### POST 请求的特点和使用场景 POST 方法主要用于向服务器提交表单或其他类型的数据以创建新的资源或更新现有资源。相比 GET 请求而言,POST 可以更安全地发送较大体积以及更加复杂的 payload 数据体到服务器上,因为它不依赖于 URL 的长度限制也不暴露在历史记录里。 同样地,在 UniApp 开发环境中,只需要简单修改 `method` 字段为 `'POST'` 即可切换至 POST 方式的 API 调用。此时 `data` 对象中的属性会被序列化成 JSON 或者其他编码后的实体主体内容一起被发送出去。 ```javascript uni.request({ url: '/api/endpoint', method: 'POST', header: { 'content-type': 'application/json' }, data: { key1: value1, key2: value2 }, success(res) { console.log(`Post request succeeded with response ${JSON.stringify(res)}`); }, fail(err) { console.error(`Failed to post data due to error ${err.message}`); } }) ``` 综上所述,选择 GET 还是 POST 主要是基于业务需求考虑:如果是读取操作并且不需要保密性保障的小型查询建议采用 GET;而涉及到写入、编辑或者其他安全性较高的交互则更适合选用 POST
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值