- 博客(110)
- 资源 (5)
- 收藏
- 关注
原创 【mitmproxy】通过 mitmproxy 的HTTP代理模式获取 OpenCode 发起的 AI API 请求的详细信息
本文介绍通过 mitmproxy 常规 HTTP 代理模式捕获 OpenCode AI API 请求的方法。主要步骤包括:配置 mitmproxy(推荐 YAML 配置文件)、安装 CA 证书到受信任根证书颁发机构、设置环境变量(HTTP_PROXY/HTTPS_PROXY)使 OpenCode 流量经代理转发,最后在 mitmproxy Web 界面查看请求 URL、请求头、请求体及响应数据。文章还提供了流量保存导出、Python 脚本自动化过滤等进阶技巧,并强调遵守服务条款和数据安全注意事项。
2026-05-05 18:10:32
342
1
原创 【mitmproxy】提取 OpenCode 的 API 接口
本文介绍了如何通过mitmproxy捕获OpenCode的API请求并提取接口信息。主要内容包括:1)使用mitmproxy本地代理捕获opencode.ai的API请求;2)导出https://opencode.ai/zen/v1/messages接口的CURL命令;3)将CURL转换为Python代码并进行优化;4)提供了完整的Python实现示例,包含发送消息、处理响应、错误重试等功能。文章还给出了关键代码片段,展示了如何设置请求头、构建payload、处理流式响应等实现细节,帮助开发者快速集成Ope
2026-05-01 10:52:31
35
原创 【mitmproxy】通过 mitmproxy 的本地捕获代理模式获取 OpenCode 发起的 AI API 请求的详细信息
通过mitmproxy本地代理模式可以捕获OpenCode发起的AIAPITLS 握手问题:由于OpenCode使用的TLS指纹与mitmproxy不完全兼容,部分请求会失败Cloudflare 防护AI服务提供商通常使用Cloudflare作为CDN,频繁请求可能触发机器人检测使用专门的抓包工具(如或在更底层的网络进行流量镜像。
2026-05-01 01:01:53
416
原创 【Windows】以UTF-8字符集运行bat脚本报错: is not recognized as an internal or external command
我在windows10系统基于Python写了一个文件工具模块,然后写了一个bat脚本,用来交互式调用这个文件工具。@echo off:: 切换工作目录到当前 bat脚本所属目录:: 设置 PYTHONPATH 使 Python 能找到 src 模块:menuclsecho 文件工具 - 请选择操作类型echo.echo 1. delete_files_with_extension - 删除指定后缀的文件echo 2. convert_image_format - 转换单张图片格式。
2026-04-12 19:13:44
357
原创 【Postman】对GET请求的参数进行URL编码
本文介绍了在Postman的Pre-request Script中处理URL参数编码的方法。主要内容包括:使用encodeURIComponent()函数或pm.encode方法对GET请求参数进行编码;处理单个或多个查询参数的编码实现;将编码值存入环境变量供后续使用;对URL路径参数进行编码处理;以及在请求头中进行编码操作。这些方法能确保URL参数符合规范,避免特殊字符导致的服务器解析错误,适用于包含空格、中文等特殊字符的参数场景。
2025-09-06 11:41:42
559
原创 【Python】shutil.make_archive() 方法详解
Python的shutil.make_archive()函数是一个便捷的文件打包工具,支持多种压缩格式(ZIP、TAR等)。该函数通过简单的参数设置(base_name指定输出文件名、format选择压缩格式、root_dir和base_dir定义源文件路径)就能完成文件归档操作。相比zipfile和tarfile模块,它提供了更简单的接口,适合常见打包需求,但功能相对基础。使用时需注意路径设置和文件权限问题。
2025-08-26 07:08:23
1104
原创 【Python】在 Pydantic 模型中使用非 Pydantic 定义的类作为模型字段类型
本文介绍了如何在Pydantic模型中使用自定义的非Pydantic类作为字段类型。通过使用BeforeValidator和Annotated,可以预处理输入数据(如字典)并转换为自定义类的实例。关键点包括:1)定义预处理函数将字典转为自定义类实例;2)设置模型为arbitrary_types_allowed=True以允许任意类型;3)使用Annotated标记字段类型。文章以User类为例,分别演示了处理单个对象和对象列表两种场景,并提供了完整的代码示例,展示了如何从字典数据解析为Pydantic模型。
2025-08-25 23:37:41
268
原创 【Python】PyExecJS2执行js文件报错“Cannot find module“问题
本文解决了PyExecJS2执行JS文件时无法正确加载同级模块的问题。通过分析发现,当通过execjs.compile()执行a.js时,默认工作目录是Python程序的当前目录,导致__dirname解析错误。解决方法是在编译JS代码时显式指定cwd参数为JS脚本所在目录(resource_dir_path),这样就能正确解析相对路径引入的b.js模块。关键代码修改为ctx = execjs.compile(node_script, cwd=script_dir),从而确保了模块路径的正确解析。
2025-08-22 02:45:09
500
原创 【IDEA】设置Debug调试时调试器不进入特定类(Spring框架、Mybatis框架)
本文介绍了如何通过IDE调试器设置跳过Spring框架层直接调试业务代码的方法。以Ruoyi-Vue项目为例,当在SysUserController.list()方法设置断点时,调试器会先进入Spring的AOP代理类而非目标业务方法。通过配置IntelliJ IDEA的"步进"设置,添加"org.springframework."和"org.aspectj."等排除模式,可以避免调试时进入框架代码,直接定位到业务逻辑。这种设置对所有调试会话有效,
2025-08-17 22:37:47
708
原创 【Python】Python爬虫学习路线
本文是一份Python爬虫学习的全景指南,从基础语法到实战技巧全面覆盖。首先强调Python核心基础(语法、数据结构、OOP、正则表达式等)的重要性,这是爬虫逻辑控制和数据清洗的基础。其次介绍核心工具链,包括网络请求库(requests、aiohttp)、解析库(BeautifulSoup、lxml)、动态页面处理(selenium、playwright)以及存储方案。进阶部分讲解前端知识(JS基础、网页分析)和反爬对抗技巧(加密破解、Hook技术),提供实际案例和代码示例。学习路线建议先掌握基础,再通过实
2025-08-16 15:57:27
2715
原创 【JS】JavaScript中的this详解
JavaScript中的this关键字详解 JavaScript中的this关键字是一个动态绑定的上下文对象,其值取决于函数调用方式。主要有四种绑定规则:1)默认绑定(全局对象或undefined);2)隐式绑定(调用对象);3)显式绑定(call/apply/bind);4)new绑定(构造函数实例)。箭头函数不绑定自己的this,而是继承外层作用域。使用优先级为:new绑定 > 显式绑定 > 隐式绑定 > 默认绑定。实际开发中需注意事件处理、回调函数中的this绑定丢失问题,可通过bi
2025-08-03 11:13:21
455
原创 【HTML】<script>元素中的 defer 和 async 属性详解
HTML5中<script>元素的defer和async属性用于优化脚本加载。defer异步下载脚本并在DOM解析完成后顺序执行,适合依赖DOM的脚本;async异步下载后立即执行但不保证顺序,适合独立模块。两个属性都只对外部脚本有效,不能同时使用。合理选择可提升页面性能:defer用于需要DOM的脚本,async用于独立脚本,无属性用于关键脚本。注意避免在延迟脚本中使用document.write。
2025-07-26 23:26:06
600
原创 【IDEA】迁移配置、系统、插件、日志目录
本文介绍了将IntelliJ IDEA从默认C盘迁移到D盘的操作步骤。首先关闭IDEA,将Local和Roaming目录下的JetBrains/IntelliJIdea2025.1文件夹迁移至D盘。然后修改bin目录下的idea.properties文件,配置新的config.path和system.path路径。启动IDEA后,根据提示进一步添加plugins.path和log.path属性指向新位置。整个过程需注意不同版本IDEA的目录结构差异,通过修改配置文件确保所有相关路径正确指向新的存储位置。文中
2025-07-19 10:34:43
1058
原创 【Python】SQLAlchemy实现upsert
本文介绍了在SQLAlchemy中实现UPSERT(更新或插入)操作的几种方法。对于简单场景可以使用merge()方法,它会根据主键自动判断是更新还是插入记录。针对不同数据库,推荐使用原生UPSERT语法:PostgreSQL和SQLite使用on_conflict_do_update,MySQL使用on_duplicate_key_update。文章还提到可以通过捕获异常的方式实现,但不推荐在高并发场景使用。最后给出了各方法的兼容性和推荐程度对比,建议优先使用数据库特定的UPSERT功能以获得更好的性能和
2025-07-18 23:26:21
666
原创 【python】Path.cwd()、sys.executable、sys.argv、Path(__file__) 在PyInstaller打包前后的区别
PyInstaller打包Python脚本时,sys.executable、sys.argv和Path(__file__)的行为会发生变化:sys.executable从指向Python解释器变为指向可执行文件本身;sys.argv[0]从脚本文件名变成可执行文件名;Path(__file__)会指向临时解压目录而非原路径。建议使用sys._MEIPASS获取资源路径,并注意调试时参数传递的变化。理解这些差异有助于正确处理打包后的路径问题。
2025-07-16 23:38:56
952
原创 【Linux】安装Python3.11报错
如果在尝试上述步骤后仍然遇到问题,请检查错误日志中提到的具体文件和行号,以获取更多线索。此外,您还可以尝试在 Python 的官方 issue 跟踪器或相关社区论坛上搜索错误信息,看看是否有其他用户遇到了类似的问题,并寻求帮助。命令安装 Python 3.11.8 时遇到错误,这通常是由于编译环境问题、依赖项缺失或不兼容的软件包引起的。编译 Python 需要一系列的开发工具和库。确保您在 Python 源代码的根目录下执行。在 CentOS 系统上使用。命令之前,您可能需要使用。
2024-05-06 15:12:49
6312
1
原创 【Python】部署Windows系统的Python程序到Linux系统(使用venv)
如果没有,你需要先安装pip。只包含项目中使用到的依赖,但是我使用了下,体验不好,生成的。解释器的路径来创建虚拟环境。命令创建虚拟环境,默认会使用当前系统中使用的。版本,首先需要在你的系统中安装那个特定版本的。执行这个命令后,你会发现命令行提示符变成了。程序所依赖的所有第三方模块。程序所在的目录下, 使用指定版本的。总是缺少依赖,需要手动再处理一下。的文件夹,该文件夹包含了一个独立的。这将会在当前的目录下创建一个叫做。形式,表明你已经进入了虚拟环境。解释器创建一个新的虚拟环境。版本,并且它的解释器路径是。
2024-05-06 11:46:21
4598
3
原创 【正则表达式】中的“\b“
单词边界是指一个单词的开头或结尾,或者一个单词和一个非单词字符之间的位置。单词字符通常指字母、数字和下划线,非单词字符则是指除此之外的所有字符。“\b” 是正则表达式中的一个元字符,用于表示单词边界。掌握了 “\b” 的使用,可以更加精确地匹配字符串,避免出现不必要的匹配。
2023-11-03 15:30:36
4498
原创 【IDEA插件开发】RefactoringEventListener与RefactoringElementListener的区别
重构是一种改善源代码质量而不改变其功能的过程。重构可以帮助我们保持代码的整洁、简洁和易于维护。IntelliJ IDEA提供了许多内置的重构操作,例如重命名、移动、提取方法、提取常量等。重构监听器是一种特殊的接口,它可以让我们在插件中捕获和处理重构事件。通过实现重构监听器,我们可以在重构发生前后执行一些自定义的逻辑,例如更新外部设置、检查冲突、显示提示等。和。是一个全局的监听器,它可以监听所有类型的重构事件。用于获取有关所选项目中已执行重构的高级通知。
2023-11-03 14:02:29
531
原创 MySQL中使用UNION和ORDER BY的注意事项
先UNION后ORDER BY时,只需要在最后一个SELECT语句中包含ORDER BY;先ORDER BY后UNION时,由于优先级问题,需要将子查询用括号括起来,且ORDER BY后面必须有LIMIT`;
2023-04-22 21:04:30
2193
转载 SpringBoot优雅停机
Spring boot 2.0 之优雅停机springboot2.3.0优雅停机Springboot2.3优雅停机方案源码解析
2022-10-11 20:05:07
289
原创 Spring-Cache整合Redis
配置类使用从数据库中查到数据后,序列化到缓存时报错:将改为:从缓存中查到数据后,反序列化时报错:原来是因为实体类中有方法,在序列化时会调用该方法,然后缓存的json中会有字段。后来反序列化时,在实体类中找不到属性,所以就报错了!实体类
2022-10-08 16:56:23
1243
原创 @Future对LocalDate不生效的问题
*** 未来LocalDateMETHOD , FIELD , ANNOTATION_TYPE , CONSTRUCTOR , PARAMETER , TYPE_USE }) // 将注解标记为 Bean Validation 约束 @Constraint(validatedBy = {/*** 错误提示信息*/ String message() default "日期必须大于今天";/*** 分组信息,容许指定此约束所属的验证组* @return};/**......
2022-08-02 21:18:44
311
原创 【IDEA】Jump to Line插件
介绍Jump to Line插件允许您在调试时访问任何一行代码。将黄色箭头拖放到gutter中所需的位置,它将在那里放置一个执行点。与单步执行不同,该插件允许您从该点开始运行程序,而无需执行前面的代码(注:相当于前面的代码没有了)。虽然IDEA中点击行号就可以跳转到指定行,但还是会执行前面的代码若被忽略执行的代码中有声明变量,该变量就会被初始化为默认值在一个函数中,可以向前和向后跳转到行。Jump to Line以绿色高亮显示适合跳转的行。更改某些行可能会破坏工作流。这就是IDE将以黄色突出显示
2022-05-28 15:00:30
4297
原创 【JVM】java.lang.OutOfMemoryError: Metaspace
背景本项目有多个定时任务,且部署环境是预发布环境有一台服务器(16.50),生产环境有两台服务器(16.60、16.61),都注册在同一个xxl-job调度中心。xxl-job配置的路由策略都是"轮询"所以每次执行定时任务时,xxl-job都是先调度到预发布环境。问题之前一直都没有问题,但是05-21日例行查看昨日定时任务的执行情况,发现05-20日00:07:00定时任务[生成拓客本会话]调度成功,但执行时报错:java.lang.OutOfMemoryError: Metaspace
2022-05-24 20:34:34
982
原创 【MySQL】Deadlock found when trying to get lock; try restarting trans
初始化数据:CREATE TABLE `t_test` ( `FID` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键', `FCREATE_TIME` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `FMODIFY_TIME` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_T
2022-05-17 20:57:16
1432
原创 【Mybatis】update语句返回的是匹配到的行数还是影响到的行数?
基础参考Mybatis Update操作返回值问题拓展:modify_time会更新吗?建表,插入数据DROP TABLE IF EXISTS `temp`;CREATE TABLE `temp` ( `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', `sort`
2022-05-12 19:58:57
967
原创 【hutool】使用问题
如何将Date转化为LocalDateTimepackage cn.hutool.core.date;public class LocalDateTimeUtil { /** * {@link Date}转{@link LocalDateTime},使用默认时区 * * @param date Date对象 * @return {@link LocalDateTime} */ public static LocalDateTime of(Date date) { if (n
2022-05-09 11:20:48
1343
原创 SpringBoot中@ConfigurationProperties配置多层嵌套和复杂Map
# ==================================================================================# 人员# ==================================================================================kfang.infra.person.incubate.000000.before-position-ids=0225,0226kfang.infra.pers
2022-04-28 15:07:13
6208
原创 seata
seata中文官网从v1.4.2版本开始,已支持从一个Nacos dataId中获取所有配置信息,你只需要额外添加一个dataId配置项注意Server和Client的命名空间和组要一致
2022-03-15 15:35:41
681
原创 application.yml与bootstrap.yml的区别
前言Spring Cloud 构建于 Spring Boot 之上,在 Spring Boot 中有两种上下文,一种是 bootstrap,另外一种是 application。区别bootstrap.yml 和 application.yml 都可以用来配置参数。bootstrap.yml 用来程序引导时执行,应用于更加早期配置信息读取。可以理解成系统级别的一些参数配置,这些参数一般是不会变动的。application.yml 可以用来定义应用级别的, 应用程序特有配置信息,可以用来配置后续各个模
2022-03-12 12:24:00
4361
原创 Feign的超时、重试、降级配置
application.ymlribbon: #请求处理的超时时间 ReadTimeout: 6000 #请求连接的超时时间 ConnectTimeout: 6000 # 是否对所有请求都进行重试。false(默认)-只对get请求进行重试;true-对所有请求进行重试(对于put或post等写操作,如果服务器接口没做幂等性,重试会产生不好的结果)!!! OkToRetryOnAllOperations: false # 每个实例重试次数,不包括首次请求,默认为0。当Eurek
2022-03-11 19:39:01
1658
原创 【SpringBoot】覆盖jar包中@Bean的方法
问题分析方案一:allow-bean-definition-overridingspring: main: allow-bean-definition-overriding: true # 允许bd覆盖/** * @description: 先设置allow-bean-definition-overriding=true,然后在@Import{@link kfang.infra.feature.mysql.MysqlConfig}后再导入该类,从而覆盖其中的mysqlSq
2022-03-08 16:27:44
6378
原创 【Spring】@Transactional的事务传播方式REQUIRED、REQUIRES_NEW、NESTED
参考spring事务传播之required nested requires_newSpring框架(事务传播行为)补充NESTED是为被嵌套的方法开启了一个子事务,这个事务与父类使用的是同一个连接。REQUIRES_NEW是使用一个全新的事务,这个事务属于另外一条全新的连接。两者最重要的体现,就是在多数据源中,REQUIRES_NEW会再次触发一下数据源的获取,而NESTED则不会。NESTED开始一个 “嵌套的” 事务, 它是已经存在事务的一个真正的子事务。嵌套事务开始执行时, 它将取得
2021-12-30 16:54:42
1824
原创 【Spring】SpEL(即Spring的表达式语言)
遗漏知识点语法使用#{...}作为界定符,所有在大括号中的字符都将被认为是SpEL字面量的表示整数:#{666}String:可以用单引号或双引号作为字符串的界定符,#{‘Tom’}Boolean:#{true}、#{false}运算符算术运算符:+、-、*、/、%、∧+号还可以作为字符串拼接符比较运算符:<、>、==、<=、>=、lt、gt、eq、le、ge逻辑运算符:and、or、not、&&、||判空运算符:#{user.n
2021-12-25 21:47:51
473
flv.min.js
2020-10-15
pdt_tools.indentGuide.zip
2019-10-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅