纯HTML调用restfull api工具

<!DOCTYPE html>
<html>
<head><meta charset="UTF-8"><title>API调用工具</title><style>@keyframes marquee {0% {transform: translateX(0%);}80% {transform: translateX(70%);}}.marquee {animation: marquee 2s linear infinite;flex: 1;color: #004d8c;font-size: 20px;}@keyframes marquee2 {0% {transform: translateX(-20%);}50% {transform: translateX(90%);}}.marquee2 {animation: marquee 3s linear infinite;flex: 1;color: rebeccapurple;font-size: 12px;}body {font-family: Arial, sans-serif;margin: 0;padding: 0;background-color: #f2f2f2;}.container {display: flex;height: 100vh;}.left-column {flex-grow: 1;flex-basis: 50%;overflow: auto;background-color: #fff;border-right: 1px solid #ccc;padding: 20px;}.right-column {flex-grow: 1;flex-basis: 50%;background-color: #fff;padding: 20px;overflow: auto;margin: 5px;}h1 {margin-bottom: 20px;color: #555;}label {display: block;margin-bottom: 5px;font-weight: bold;color: #555;}input[type="text"], select, textarea {width: 100%;padding: 8px;border: 1px solid #ccc;border-radius: 4px;box-sizing: border-box;color: #555;}button {display: inline-block;padding: 10px 20px;background-color: #4caf50;color: #fff;border: none;border-radius: 4px;cursor: pointer;}button:hover {background-color: #45a049;}#response {white-space: pre;color: #333;}</style>
</head>
<body>
<div class="container"><div class="left-column"><div style="height: 60px;width: auto;border-bottom: 1px solid #7171C6"><div style="display: flex;" id="pmd1"><div class="marquee">*</div><div class="marquee2">*</div><div class="marquee">*</div><div class="marquee">z</div><div class="marquee2">*</div><div class="marquee2">*</div><div class="marquee2">*</div><div class="marquee">*</div><div class="marquee2">*</div></div><div style="display: flex;" id="pmd2"><div class="marquee2">*</div><div class="marquee2">*</div><div class="marquee">*</div><div class="marquee2">*</div><div class="marquee2">*</div><div class="marquee">*</div><div class="marquee">*</div><div class="marquee">*</div><div class="marquee2">*</div><div class="marquee2">*</div><div class="marquee2">*</div><div class="marquee">*</div></div></div><label for="url">接口地址:</label><input type="text" id="url" placeholder="请输入接口地址" required><label for="method">请求方法:</label><select id="method"><option value="GET">GET</option><option value="POST">POST</option><option value="PUT">PUT</option><option value="DELETE">DELETE</option></select><label for="params">请求参数:</label><input type="text" id="params" placeholder="请输入请求参数"><label for="body">请求体内容(JSON格式):</label><textarea id="body" placeholder="请输入请求体内容" rows="6"></textarea><label for="token">请求头Token:</label><input type="text" id="token" placeholder="请输入请求头Token"><label for="account">请求头Account:</label><input type="text" id="account" placeholder="请输入请求头Account"><label for="password">请求头Password:</label><input type="text" id="password" placeholder="请输入请求头Password"><button onclick="sendRequest()">发送请求</button></div><div class="right-column"><div id="response"></div></div>
</div><script>function setFontSize(id) {const div = document.getElementById(id);// 获取所有子元素const children = div.children;for (let i = 0; i < children.length; i++) {// 设置子元素的样式属性const child = children[i];child.style.fontSize = Math.floor(Math.random() * 8 + 10) + 'px'; // 设置字体大小为10~30px之间的随机值}}function replaceWithRandomLetters(id) {const myDiv = document.getElementById(id);const letters = "abcdefghijklmnopqrstuvwxyz"; // 可以自己定义字符列表for (let i = 0; i < myDiv.children.length; i++) {const child = myDiv.children[i];let newContent = "";for (let j = 0; j < child.textContent.length; j++) {const index = Math.floor(Math.random() * letters.length);newContent += letters[index];}child.textContent = newContent;}}replaceWithRandomLetters("pmd1");replaceWithRandomLetters("pmd2");function changeMarqueeDuration() {const marqueeItems = document.querySelector("#marqueeItems");const interval = Math.floor(Math.random() * 10 + 15) * 1000;marqueeItems.style.animationDuration = `${interval}ms`;}// 每隔一段时间调用一次changeMarqueeDuration函数setInterval(changeMarqueeDuration, 1000); // 这里设置为每1秒修改一次滚动时间function changeMarqueeDuration2() {const marqueeItems2 = document.querySelector("#marquee2");const interval2 = Math.floor(Math.random() * 20 + 10) * 1000; // 生成一个10到20秒之间的随机整数,乘1000转换为毫秒marqueeItems2.style.animationDuration = `${interval2}ms`; // 将animationDuration属性设置为随机生成的时间间隔}// 每隔一段时间调用一次changeMarqueeDuration函数setInterval(changeMarqueeDuration2, 2000); // 这里设置为每1秒修改一次滚动时间setInterval(function () {replaceWithRandomLetters("pmd1");setFontSize("pmd1");}, 2000);setInterval(function () {replaceWithRandomLetters("pmd2");setFontSize("pmd2");}, 1000);function sendRequest() {var url = document.getElementById("url").value;var method = document.getElementById("method").value;var params = document.getElementById("params").value;var body = document.getElementById("body").value;var token = document.getElementById("token").value;var account = document.getElementById("account").value;var password = document.getElementById("password").value;// 拼接URL和参数if (params) {url += "?" + params;}var xhr = new XMLHttpRequest();xhr.open(method, url, true);xhr.setRequestHeader("Content-Type", "application/json");xhr.setRequestHeader("Authorization", token);xhr.setRequestHeader("account", account);xhr.setRequestHeader("password", password);xhr.onreadystatechange = function () {if (xhr.status === 200 || xhr.status === 201) {var response = JSON.parse(xhr.responseText);document.getElementById("response").innerHTML = JSON.stringify(response, null, 2);} else {document.getElementById("response").innerHTML = "状态码【"+xhr.status+"】,接口请求失败,请重试。";}};if (method === "GET") {xhr.send();} else {xhr.send(body);}}
</script>
</body>
</html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/110654.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

机器学习——主成分分析(PCA,未完)

略略翻了下书&#xff0c;差点儿窒息在床上… 看了几个博主的笔记&#xff0c;有点儿头疼 不知道是不是神经裂开生成新突触&#xff0c;还是脑细胞坏死前最后的呐喊 重点看了三篇&#xff0c;觉得非常惊艳&#xff0c;易于理解的 先看了主成分分析的原理详解&#xff0c;但还是…

硬件成本节省60%,四川华迪基于OceanBase的健康大数据数仓建设实践

导语&#xff1a;本文为四川华迪数据计算平台使用 OceanBase 替代 Hadoop 的实践&#xff0c;验证了 OceanBase 在性能和存储成本方面的优势&#xff1a;节省了 60% 的硬件成本&#xff0c;并将运维工作大幅减少&#xff0c;从 Hadoop 海量组件中释放出来&#xff1b;一套系统处…

21天打卡掌握java基础操作

Java安装环境变量配置-day1 参考&#xff1a; https://www.runoob.com/w3cnote/windows10-java-setup.html 生成class文件 java21天打卡-day2 输入和输出 题目&#xff1a;设计一个程序&#xff0c;输入上次考试成绩&#xff08;int&#xff09;和本次考试成绩&#xff0…

华为云云耀云服务器 L 实例使用,从性能、性价比、易用性、稳定性和安全性等方面进行评测

华为云云耀云服务器 L 实例是一款面向中小企业和开发者的云服务器产品。下面我们将从性能、性价比、易用性、稳定性和安全性等方面进行评测&#xff0c;并将其与同类产品进行对比。 性能 华为云云耀云服务器 L 实例基于最新的处理器技术&#xff0c;具备卓越的计算性能和响应速…

如何用工业树莓派和MQTT平台打通OT和IT?

一、应用设备 OT端设备&#xff1a;步进电机&#xff0c;MODBUS TCP远程I/O模块&#xff0c;PLC设备 边缘侧设备&#xff1a;宏集工业树莓派&#xff1b; IT端设备&#xff1a;PC、安卓手机&#xff1b; IT端软件&#xff1a;宏集HiveMQ MQTT通信平台 二、原理 宏集工业树…

iOS 中,isa 指针

每个对象都有 isa 指针&#xff0c;指向对象所属的类。例如类 NSString 其实是类对象。 类对象产生于编译期&#xff0c;单例。 类对象有 isa 指针指向对应元类&#xff0c;元类&#xff08;metaclass&#xff09;中保存了创建类对象以及类方法所需的所有信息。 struct objc_…

vue 后端返回二进制流-前端通过blob对象下载文件-图片

前言 在实际开发中我们经常会遇见下载文件的场景&#xff0c;比如下载合同&#xff0c;下载文件 下载文件有2种方式&#xff0c;一种是后端返回二进制流&#xff0c;前端通过blob对象接受根据不同类型下载 还有一种把地址直接在浏览器新窗口打开浏览器打开pdf可以预览和下载&…

react实现一维表格、键值对数据表格key value表格

UI画的需求很抽象&#xff0c;直接把数据铺开&#xff0c;不能直接用antd组件了 上一行是name&#xff0c;下一行是value&#xff0c;总数不定&#xff0c;最后前端还要显示求和 class OneDimensionTable extends React.Component { render() {const { data } this.props;le…

Linux安装node_exporter使用grafana进行服务器监控

文章目录 linux安装node_exporter修改node_exporter端口服务器安装grafana服务器安装prometheus将linux的noe_exporter配置到prometheus配置文件中导入linux服务器的模板,id: 16098常用exporter安装下载 linux安装node_exporter 要在CentOS 7.6.1810 (Core)上安装node_exporte…

网安顶刊IEEE Transactions on Dependable and Secure Computing

安全顶刊论文列表 写在最前面IEEE Transactions on Dependable and Secure ComputingTable of Contents&#xff08;March-April 2023&#xff09;Volume 20, Issue 2Table of Contents&#xff08;Sept.-Oct. 2023&#xff09;Volume 20, Issue 5 写在最前面 为了给自己找论文…

2023_Spark_实验十九:SparkStreaming入门案例

SparkStreaming入门案例 一、准备工作 二、任务分析 三、官网案例 四、开发NetWordCount 一、准备工作 实验环境&#xff1a;netcat 安装nc&#xff1a;yum install -y nc 二、任务分析 将nc作为服务器端&#xff0c;用户产生数据&#xff1b;启动sparkstreaming案例中的客户端…

【SA8295P 源码分析 (二)】64 - QNX 与 Android GVM 显示 Dump 图片方法汇总

【SA8295P 源码分析】64 - QNX 与 Android GVM 显示 Dump 图片方法汇总 一、QNX侧1.1 surfacedump 功能1.2 screenshot 功能二、Android GVM 侧2.1 screencap -p 导出 PNG 图片2.2 screencap 不加 -p 参数,导出 RGB32 图片2.3 dumpsys SurfaceFlinger --display-id 方法系列文…

php获取农历日期节日

代码地址&#xff1a;php获取农历日期节日-遇见你与你分享 <?php $c new DayService(); $today$c->convertSolarToLunar(date(Y),date(m),date(d)); $time "农历".$today[1].$today[2]."日";class DayService {var $MIN_YEAR 1891;var $MAX_YEAR …

mac电脑zsh: command not found: adb

“zsh: command not found: adb” 的解决方法&#xff1a; 前提 已经成功安装了 Android Studio. 打开 iTerm 终端依次输入下面命令&#xff1a; echo export ANDROID_HOME/Users/$USER/Library/Android/sdk >> ~/.zshrc echo export PATH${PATH}:$ANDROID_HOME/tool…

NIO IN:技术蔚来的首次「大阅兵」

宝山&#xff0c;上海第一钢铁厂旧址。 上周&#xff0c;蔚来在这里点亮金色炉台&#xff0c;2500 立方米高炉&#xff0c;浓重的工业气质与古典凝重的光影交织&#xff0c;蔚来 NIO IN 用科技的进步呼应那个火红的年代。 这是蔚来第一次开科技发布会&#xff0c;为了全方位展…

通过内网穿透快速搭建公网可访问的Spring Boot接口调试环境

&#x1f525;博客主页&#xff1a; 小羊失眠啦 &#x1f516;系列专栏&#xff1a; C语言 、Cpolar、Linux ❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 文章目录 前言1. 本地环境搭建1.1 环境参数1.2 搭建springboot服务项目 2. 内网穿透2.1 安装配置cpolar内网穿透2.1.1 …

通讯协议学习之路:RS485协议理论

通讯协议之路主要分为两部分&#xff0c;第一部分从理论上面讲解各类协议的通讯原理以及通讯格式&#xff0c;第二部分从具体运用上讲解各类通讯协议的具体应用方法。 后续文章会同时发表在个人博客(jason1016.club)、CSDN&#xff1b;视频会发布在bilibili(UID:399951374) 序&…

【SA8295P 源码分析 (二)】66 - Android 侧内核层 TouchScreen Panel(TP)触摸屏驱动源码分析

【SA8295P 源码分析】66 - Android 侧内核层 TouchScreen Panel(TP)触摸屏驱动源码分析 一、在 Shell 中查看 input 设备信息命令1.1 获取QNX 端虚拟化过去的 input 设备:cat /mnt/vm/images/linux-la.config1.2 获取 Android 端 input 设备信息:getevent -i1.3 获取 Andro…

ARJ_DenseNet BMR模型训练

废话不多数&#xff0c;模型训练代码 densenet_arj_BMR.py &#xff1a; import timefrom tensorflow.keras.applications.xception import Xception from tensorflow.keras.applications.densenet import DenseNet169 from tensorflow.keras.preprocessing.image import Im…

电脑桌面记事本便签软件哪个好?

很多人的电脑或者手机上都离不开一款好用的便签软件&#xff0c;使用便签软件可以帮助大家记事&#xff0c;提醒大家按时完成各项任务&#xff0c;但是自带的记事本便签软件不论从外观还是功能方面都有一定的欠缺&#xff0c;在使用过程中很容易耽误事情。 功能全面外观好看的…