MockHTTP

MockHTTP 可以将现有HTTP转换成GET请求,设置cron定时调用,自定义代码去格式化数据,通知到你的邮箱里。

比如每天早上时自动获取博客园文章列表,天气下雨时通知,各类签到等

Request

创建一个请求

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

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

GET 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 的内存,所以你的定制化代码应尽量减少内存占用

会收到一封邮件

周末基于 .NET 9 + K8S 写了个 MockHttp的更多相关文章

  1. 基于prometheus监控k8s集群

    本文建立在你已经会安装prometheus服务的基础之上,如果你还不会安装,请参考:prometheus多维度监控容器 如果你还没有安装库k8s集群,情参考: 从零开始搭建基于calico的kuben ...

  2. 使用java语言基于SMTP协议手写邮件客户端

    使用java语言基于SMTP协议手写邮件客户端 1. 说明 电子邮件是互联网上常见的应用,他是互联网早期的产品,直至今日依然受到广大用户的喜爱(在中国可能因为文化背景不同,电子邮件只在办公的时候常用) ...

  3. 基于MATLAB的手写公式识别(9)

    基于MATLAB的手写公式识别(9) 1.2图像的二值化 close all; clear all; Img=imread('drink.jpg'); %灰度化 Img_Gray=rgb2gray(I ...

  4. 基于MATLAB的手写公式识别(6)

    基于MATLAB的手写公式识别 2021-03-29 10:24:51 走通了程序,可以识别"心脑血管这几个字",还有很多不懂的地方. 2021-03-29 12:20:01 tw ...

  5. 基于MATLAB的手写公式识别(5)

    基于MATLAB的手写公式识别 总结一下昨天一天的工作成果: 获得了大致的识别过程. 一个图像从生肉到可以被处理需要经过预处理(灰质化.增加对比度.中值过滤.膨胀或腐蚀.闭环运算). 掌握了相关函数的 ...

  6. 基于MATLAB的手写公式识别(3)

    基于MATLAB的手写公式识别 图像的膨胀化,获取边缘(思考是否需要做这种处理,初始参考样本相对简单) %膨胀 imdilate(dilate=膨胀/扩大) clc clear A1=imread(' ...

  7. 基于MATLAB的手写公式识别(2)

    基于MATLAB的手写公式识别 图像的预处理(除去噪声.得到后续定位分割所需的信息.) 预处理其本质就是去除不需要的噪声信息,得到后续定位分割所需要的图像信息.图像信息在采集的过程中由于天气环境的影响 ...

  8. 基于MATLAB的手写公式识别(1)

    基于MATLAB的手写公式识别 reason:课程要求以及对MATLAB强大生命力的探索欲望: plan date:2021/3/28-2021/4/12 plan: 进行材料搜集和思路整理: 在已知 ...

  9. 基于Vue项目+django写一个登录的页面

    基于Vue项目+django写一个登录的页面 前端 借用了一下vue项目模板的AboutView.vue 页面组件 <template> <div class="about ...

  10. (转)如何基于FFMPEG和SDL写一个少于1000行代码的视频播放器

    原文地址:http://www.dranger.com/ffmpeg/ FFMPEG是一个很好的库,可以用来创建视频应用或者生成特定的工具.FFMPEG几乎为你把所有的繁重工作都做了,比如解码.编码. ...

随机推荐

  1. Oracle同一台服务器创建多个数据库

    有时候我们需要再同一台机器上创建多个数据库服务(不是单纯的数据库实例),每一个数据库可以有单独的服务运行,只是在一个机器环境而已.可以在不同的端口上监听,也可以在相同端口监听 创建多个数据库步骤 安装 ...

  2. 远距离跨网络实现windows远程桌面连接

    1.保证已经打开被连接电脑---远程访问---权限. 我的电脑--右键--属性--远程设置 2.选择允许连接 (选择用户和高级没有特殊设置可以不动,被连接电脑当前登陆的账号就可以满足权限) 3.打开- ...

  3. c++ 命名的强制类型转换

    显式转换:显式将一种类型转换为另一种类型. References: C++中的显示数据类型转换 与命名的强制类型转换相比,旧式的强制类型转换从表现形式上来说不那么清晰明了,容易被看漏,所以一旦转换过程 ...

  4. A股迎来中报季,合合信息文档解析技术辅助大模型深度解读财报

    财务报告是公众和投资者了解企业经营状况的主要信源之一.步入8月中下旬,上市公司进入了中报披露高峰期.据东方财富Choice数据统计,截至8月14日数据,A股有超过1715只个股公布了2024年半年度业 ...

  5. ASP.NET Core – View Component

    前言 以前写过 Asp.net core 学习笔记 ( ViewComponent 组件 ), 这篇作为翻新版. 参考 Docs – View components in ASP.NET Core D ...

  6. Nuxt Kit 组件管理:注册与自动导入

    title: Nuxt Kit 组件管理:注册与自动导入 date: 2024/9/15 updated: 2024/9/15 author: cmdragon excerpt: Nuxt Kit 为 ...

  7. mongo 副本集rs 理解和使用小结

    转载请注明出处: 在MongoDB中,rs(通常指的是"replica set"的缩写)是复制集(Replica Set)的标识符或在使用时的一种常见前缀,尤其是在命令行工具和脚本 ...

  8. BOOST 定时器 stop探究

    Asio是一个建立在Boost所提供的相关组件之上的异步的网络库,可以运行在Win/Linux/Unix等各种平台之上. 不过随着C++11的发布,其对Boost的依赖也越来越少,作者又做了一个不依赖 ...

  9. pytorch中LSTM各参数理解

    nn.LSTM(input_dim,hidden_dim,nums_layer,batch_first) 各参数理解: input_dim:输入的张量维度,表示自变量特征数 hidden_dim:输出 ...

  10. 三,MyBatis-Plus 的各种查询的“超详细说明”,比如(等值查询,范围查询,模糊查询...)

    三,MyBatis-Plus 的各种查询的"超详细说明",比如(等值查询,范围查询,模糊查询...) @ 目录 三,MyBatis-Plus 的各种查询的"超详细说明&q ...