周末基于 .NET 9 + K8S 写了个 MockHttp

news/2025/3/11 15:52:26/文章来源:https://www.cnblogs.com/neverc/p/18568441

MockHTTP

MockHTTP 可以将现有HTTP转换成GET请求,设置cron定时调用,自定义代码去格式化数据,通知到你的邮箱里。
比如每天早上时自动获取博客园文章列表,天气下雨时通知,各类签到等

Request

创建一个请求

可以使用VSCode或VS,创建一个.http文件

POST https://www.wdora.com/mockhttp/request/xxxGET https://www.cnblogs.com/ HTTP/1.1
Host: www.cnblogs.com
Connection: keep-alive
Cache-Control: max-age=0
sec-ch-ua: "Microsoft Edge";v="131", "Chromium";v="131", "Not_A Brand";v="24"
sec-ch-ua-mobile: ?0
sec-ch-ua-platform: "Windows"
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 Edg/131.0.0.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Sec-Fetch-Site: none
Sec-Fetch-Mode: navigate
Sec-Fetch-User: ?1
Sec-Fetch-Dest: document
Accept-Encoding: gzip, deflate, br, zstd
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6

使用请求

返回对象:

GET https://www.wdora.com/mockhttp/request/xxx

响应报文原始格式:

GET https://www.wdora.com/mockhttp/request/xxx?raw=true

定时调度

每天早上9点收到1个邮件,内容为请求返回的对象Body

POST GET https://www.wdora.com/mockhttp/sched/yyy
Content-Type: application/json{"cron": "0 9 * * *", "requestName": "xxx", "notifyEmail": "xx@yy.com" }

原始的对象Body 是一个html, 不易读,可以自定义代码格式化(基于.NET 9 BCL, 支持XPath, JToken)

POST GET https://www.wdora.com/mockhttp/sched/yyy
Content-Type: application/json{"cron": "0 9 * * *", "requestName": "xxx", "notifyEmail": "xx@yy.com", "parseCode": "x => string.Join(';', XPath.Parse(x.Body, \"//article//div/a\"))" }
  • parseCode 会被编译成 Func<Response, object>,返回null,则不通知
  • XPath.Parse 是基于 HtmlAgilityPack 二次封装的方法(更方便调用,也支持原有的 HtmlAgilityPack 的方法)
  • JToken.Parse 是基于 Newtonsoft.Json 自带的方法
  • 你也可以使用.NET 自带的Regex 等能力去定制化返回
  • 由于本应用容器化限制了最多 100 MB 的内存,所以你的定制化代码应尽量减少内存占用

会收到一封邮件

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

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

相关文章

CentOS7.9无图形桌面安装chromedriver、chrome、drissionpage

由于centos7 停止维护,在安装google浏览器就因为版本和下载源的问题走了不少弯路,踩了一些坑。 原操作: sudo wget https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpmyum install google-chrome-stable_current_x86_64.rpm出现错误缺少glibc_2.…

轻松掌控:免越狱iOS设备的群控与单控功能详解

在当今的数字化时代,高效管理多台iOS设备成为企业和个人用户的一项重要需求。无论是为了提高团队协作效率,还是为了执行大规模的营销活动,免越狱的iOS设备群控与单控功能都提供了强大且安全的解决方案。本章将详细介绍如何利用这些功能,轻松实现对多台iOS设备的有效管理。免…

详解“日切”原理

探索支付领域的奥秘,深入了解日切的复杂世界。在这篇文章将带我们穿越历史的长河,从早期的钱庄货币到现代银行体系,全面解析日切的演变、挑战和实现模式。我想很多人都不陌生,但日切究竟是如何实现的,日切前后及过程中都发生了什么,需要做哪些事情;不同的年代、不同的机…

Windows Server 2025激活教程

Windows Server 如何把评估版升级改为正式版本并激活微软官方并不提供server系统的正式版本,只提供测试的评估版本,那么我们怎么修改为正式版本呢?1.确认版本开始————运行————CMD(管理员模式)cmd命令页面输入:winver 会弹出版本页面 查看具体为数据中心版还是标准…

《花100块做个摸鱼小网站! 》第十篇—响应式布局适配PC端和移动端

⭐️基础链接导航⭐️ 服务器 → ☁️ 阿里云活动地址 看样例 → 🐟 摸鱼小网站地址 学代码 → 💻 源码库地址一、前言 大家好呀,我是summo,小网站一直有个问题,就是PC端的样式和移动端的样式是两套,并且不能根据显示屏的大小进行动态化布局,如果PC端屏幕非常小就是这…

HCIA-09 VLAN原理与配置

主要介绍了虚拟局域网 (VLAN)的相关技术知识,包括:VLAN的作用,VLAN的标识及划分,VLAN的数据交互,VLAN的实际规划和应用,以及VLAN的相关基本配置。 通过VLAN技术,可以将物理的局域网划分成多个广播域,实现同一VLAN内的网络设备可以直接进行二层通信,不同VLAN内的设备不…

vxe-modal 实现窗口拖拽调整宽高

vxe-modal 实现窗口拖拽调整宽高 官网:https://vxeui.com<template><div><vxe-button content="点击弹出" @click="showPopup = true"></vxe-button><vxe-modal v-model="showPopup" title="标题1" :widt…

Tarjan学习笔记

强连通分量,缩点算法:Tarjan 代码及模板 强连通图:有向图,任意两点有路径 强连通分量:有向图,强连通子图数量 前置知识:dfs树(dfs序构成的树) 成分: 1.树边:dfs树上的边 (以下三种边是dfs树上没有但原图上有的边) 2.前向边:dfs树的祖先到儿子的边。 3.返祖边(后…

Mysql 数据库并发事物导致ABA问题排查解决

问题描述 一个更新计费参数接口,按钮连点导致数据未更新问题。 背景 接口内容逻辑,在一个事物内,先保存更新计费参数,再根据计费参数,重新计算费用,并刷新计费单,结算单,支付单等单据金额信息。按理来讲,这个接口是具备幂等性的,因为即便多次更新,也只是重新计算一遍…

工程化开发谷歌插件到底有爽

工程化开发谷歌插件到底有爽谷歌插件开发本质上就是写一些 html + js + css谷歌开发心得吧 manifest.json 文件{"manifest_version": 3,"name": "发布助手","version": "3.0","description": "前端资源监测&…

12-渗透测试

1、水平越权&垂直越权漏洞实验水平越权lucy用户登入成功后,将url的username参数由lucy改为kobe,即可查看到kobe的信息,实现水平越权垂直越权使用低权限用户pikachu访问添加用户页面,行使管理员admin用户的添加用户权限用户添加成功,实现垂直越权2、密码修改逻辑漏洞实…

vxe-modal 实现弹窗多窗口

官网:https://vxeui.com<template><div><p><vxe-button content="点击弹出" @click="openEvent"></vxe-button></p></div> </template><script> import { VxeUI } from vxe-pc-ui export default …