当前位置: 首页 > article >正文

fetch请求代码

 用于方便与后端做简单的接口测试(参数编码与不编码)

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Fetch Request</title>
</head>

<body>
    <button id="fetchButton">Fetch Data</button>
    <div id="responseContainer"></div>

    <script>
        // 定义 URL 和参数
        const baseUrl = 'http://10.30.20.146:20510/api/v1/text/page';
        const params = {
            // textName: '!@中国# $%^&/*\=()_+??><[]{}',
            textName: "!@中国人$%^_+??><`~!@#$%^&*()_-+=|\}{;:'/?.>,</*-+.[",
            array: [1, 2, 3],
            page: 1,
            pageSize: 20,
            domainType: 1,
            decode: 1
        };

        // 获取按钮元素
        const fetchButton = document.getElementById('fetchButton');
        fetchButton.addEventListener('click', () => {
            performRequest(baseUrl, params, false);
        });

        async function performRequest(url, params, encodeParams = true) {
            // 构建完整的 URL
            const urlWithParams = buildUrlWithParams(url, params, encodeParams);
            console.log('===[[urlWithParams]]', urlWithParams);

            // 请求选项
            const options = {
                method: 'GET',
                headers: {
                    'Accept': '*/*',
                    'Accept-Encoding': 'gzip, deflate, br',
                    'Connection': 'keep-alive',
                    'User-Agent': 'PostmanRuntime-ApipostRuntime/1.1.0',
                    '_appId': '1',
                    '_tenantId': '1',
                    '_userId': '3026601398293760000'
                }
            };

            try {
                const response = await fetch(urlWithParams, options);
                if (!response.ok) {
                    throw new Error(`HTTP error! status: ${response.status}`);
                }
                const data = await response.json();
                console.log('Response data:', data);
                displayResponse(data);
            } catch (error) {
                console.error('Fetch error:', error);
            }
        }

        function buildUrlWithParams(url, params, encodeParams) {
            const urlObj = new URL(url);
            for (const [key, value] of Object.entries(params)) {
                if (encodeParams) {
                    urlObj.searchParams.append(key, encodeURIComponent(value));
                } else {
                    urlObj.searchParams.append(key, value);
                }
            }
            return urlObj.toString();
        }

        function displayResponse(data) {
            const responseContainer = document.getElementById('responseContainer');
            responseContainer.innerHTML = `<pre>${JSON.stringify(data, null, 2)}</pre>`;
        }
    </script>
</body>

</html>


http://www.kler.cn/a/460026.html

相关文章:

  • TVS二极管选型【EMC】
  • Postman[2] 入门——界面介绍
  • STM32-笔记18-呼吸灯
  • 【Rust自学】8.4. String类型 Pt.2:字节、标量值、字形簇以及字符串的各类操作
  • C++ 设计模式:组合模式(Composite Pattern)
  • 基于通义千问2.5-7B-Instruct的技术深度解析
  • 大数据_HBase的列族属性配置
  • Kotlin 协程基础知识总结四 —— Flow
  • 基于PyQt5的UI界面开发——图像与视频的加载与显示
  • Java爬虫获取速卖通(AliExpress)商品详情
  • SpringAI从入门到熟练
  • Linux day 1203
  • 41.1 预聚合提速实战项目之需求分析和架构设计
  • C++通讯录管理系统
  • 9. 大数据集群(PySpark)+Hive+MySQL+PyEcharts+Flask:信用贷款风险分析与预测
  • DotnetSpider实现网络爬虫
  • 云轴科技ZStack获评OpenCloudOS社区2024年度优秀贡献单位
  • C++ 设计模式:门面模式(Facade Pattern)
  • 基于Ubuntu2404桌面版制作qcow2镜像
  • 玛哈特矫平机助力其龙机械,引领汽摩配件制造技术升级
  • 中犇科技数字化智能中台系统login存在sql注入漏洞
  • 015-spring-动态原理、AOP的xml和注解方式
  • 【每日学点鸿蒙知识】自定义时间选择器、Image加载本地资源、线程切换、hap包安装、沉浸式无效
  • k8s的可观测性
  • Airbnb/Booking 系统设计(high level architecture)
  • java工作流模式、背包模式、适配器工厂模式整合架构,让服务任务编排更便捷