Bruno解决SSL验证问题

在测试接口的时候,我使用的是Bruno这个软件,开源离线的API测试软件。

主页是这样子的
在这里插入图片描述
今天在测试一个HTTPS的接口时候,因为这个HTTPS接口是用的是自签证书,所以就报错误了。

Error invoking remote method 'send-http-request': Error: unable to verify the first certificate

这个问题就是需要Bruno配置关闭SSL证书的验证。
在这里插入图片描述
根据上图指示把 SSL/TLS certification verification 关闭,就能解决问题

在使用 Bruno 工具时,如果遇到发送请求后无法取消的问题,可以通过以下几种方式进行解决或缓解: 1. **使用 AbortController API** 在现代浏览器中,`AbortController` 是一种用于中止一个或多个 Web 请求的标准方式。如果你在前端通过 JavaScript 发起请求(例如使用 `fetch`),可以利用 `AbortController` 来主动取消请求。例如: ```javascript const controller = new AbortController(); const signal = controller.signal; fetch('/some-endpoint', { signal }) .then(response => response.json()) .then(data => console.log(data)) .catch(error => { if (error.name === 'AbortError') { console.log('Request aborted'); } else { console.error('Fetch error:', error); } }); // 调用此方法以取消请求 controller.abort(); ``` 这种方式适用于在前端控制请求生命周期的场景,尤其是当用户需要手动取消某个长时间运行的请求时。 2. **优化后端响应机制** 如果请求已经发送到后端,前端无法直接中断请求的执行,但可以通过设置合理的超时机制来减少不必要的等待。例如,在 Node.js 中使用 `express` 时可以设置超时: ```javascript app.use((req, res, next) => { req.setTimeout(5000, () => { // 超时处理 res.status(408).send('Request timeout'); }); next(); }); ``` 这种方式可以防止请求长时间挂起,从而提升用户体验[^2]。 3. **改进用户界面交互逻辑** 在用户点击取消按钮时,应确保前端能够及时响应,并通过 UI 提供反馈。例如,在取消请求时更新按钮状态、显示加载动画或提示信息,以增强用户感知。例如: ```javascript let isRequestAborted = false; document.getElementById('cancelBtn').addEventListener('click', () => { if (!isRequestAborted) { controller.abort(); isRequestAborted = true; document.getElementById('status').innerText = '请求已取消'; } }); ``` 这种方式提升了用户对操作的控制感,尤其是在长时间请求或频繁交互的场景中[^2]。 4. **使用后台任务队列** 如果请求涉及长时间运行的操作(例如文件生成或复杂计算),可以考虑将这些任务异步化并通过后台任务队列处理。前端可以定期轮询任务状态,或通过 WebSocket 接收任务完成的通知。例如,使用 Redis 作为任务队列: ```python import redis import time r = redis.Redis() def process_task(task_id): # 模拟长时间任务 time.sleep(10) r.set(f'task:{task_id}:status', 'completed') task_id = '12345' r.set(f'task:{task_id}:status', 'processing') process_task(task_id) ``` 前端可以通过轮询获取任务状态: ```javascript function checkTaskStatus(taskId) { fetch(`/task-status?taskId=${taskId}`) .then(response => response.json()) .then(data => { if (data.status === 'completed') { console.log('任务已完成'); } else { setTimeout(() => checkTaskStatus(taskId), 1000); } }); } ``` 这种方式可以避免请求长时间阻塞,并提供更灵活的取消机制[^5]。 ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值