# PanPost **Repository Path**: guo-dingyi/pan-post ## Basic Information - **Project Name**: PanPost - **Description**: PanPost 是一个 HTTP 报文测试与管理项目,支持通过直观的 HTTP 报文文本进行请求的收发测试。用户既可以通过本地命令操作收发报文,也可以通过 Web 界面进行图形化的使用,甚至多人在线协作使用。 项目后端采用 Go 语言开发,前端使用 HTML、CSS 和 JavaScript 实现。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-11-22 - **Last Updated**: 2026-03-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: Go语言, Http, HTML, JavaScript, Web ## README # PanPost ### 项目介绍 PanPost 是一个 HTTP 报文测试与管理项目,支持通过直观的 HTTP 报文文本进行请求的收发测试。支持将http报文转换为Postman文件格式。 用户既可以通过本地命令操作收发报文,也可以通过 Web 界面进行图形化的使用,甚至多人在线协作使用。 项目后端采用 Go 语言开发,前端使用 HTML、CSS 和 JavaScript 实现。 ## 快速开始 #### 一、 通过web界面使用PanPost 运行 PanPost 项目 ```bash go run src/main.go ``` 访问 http://127.0.0.1:8114 即可打开 PanPost 项目的 Web 界面。 ![img.png](img.png) 即可轻松使用 PanPost 提供的 Web 界面进行方便的报文测试与管理,支持直观直接通过HTTP报文的发送与接收测试 **关于PanPost 文本框快捷键说明** PostPan的web界面还提供了一些简单的快捷键 1. 按下 `Ctrl + s` 即可保存当前文本 2. 按下 `Ctrl + r` 即可发送当前文本作为 HTTP 请求 3. 按下 `Ctrl + /` 即可快速注释本行 - 当行头已经有注释的情况下,再次按组合键则取消注释 - 选中多行按下组合键时则多行注释,再次按组合键则取消注释 4. 按下 `tab` 会自动打印4个空格 - 当选中多个文字,但不跨行按下 `tab` 会将文本替换为4个空格 - 当选中多行文本,按下 `tab` 将会让这些文本行缩进4个空格 5. 按下 `enter` 会根据当前行的缩进情况,创建下一行的缩进 6. 按下 `backspace` 会根据当前空格情况,自动删除tab空格 #### 二、 通过本地命令行操作使用PanPost PanPost支持本地命令行操作,通过配置文件指定要测试的 HTTP 报文文件路径进行批量测试 你可以在配置文件指定的路径中创建你所要测试的 HTTP 报文文件,每个文件包含一个 HTTP 请求与响应的报文文本。 ```yaml local: # 支持匹配,支持批量发送多个请求 # 请求文件路径 paths: - "resources/message/show/message" # 也可以写多个路径,也可以使用通配符匹配 # - "resources/message/show/export" # - "resources/message/show/*" ``` 然后运行下面命令 ```bash go run src/main.go --local ``` ``` ================== 请求 resources\message\show\example\message ============= POST /hello HTTP/1.1 Host: http://127.0.0.1:8114 { "nickname": "Pan", "message": "\"写行代码笑哈哈😀\"" } ================== 响应 resources\message\show\example\message ============= HTTP/1.1 200 OK Date: Sat, 22 Nov 2025 14:57:48 GMT Content-Length: 108 Content-Type: text/plain; charset=utf-8 {"code":200,"msg":"success","data":"你好,Pan。已收到你的消息。 \"写行代码笑哈哈😀\" "} ``` #### 三、 http报文导出为Postman文件 PanPost支持图形化操作将http报文文件夹中的所有http报文导出为Postman文件, 只要在前端界面选中文件夹的点击导出即可在配置文件中指定的路径中找到导出的Postman文件 当然PanPost也支持本地命令行操作将http报文文件夹中的所有http报文导出为Postman文件 你需要在配置文件中指定要导出的 HTTP 报文文件路径 ```yaml postman: # 导出的Postman Collection 配置的位置,基于 base-path 路径上 path: "postman" suffix: "-postman.json" ``` 然后运行下面命令 ```bash go run src/main.go --postman <你要导出的http报文文件夹路径> ``` 例如: 将show文件夹中的所有http报文导出为Postman文件 ```bash go run src/main.go --postman show ``` 然后即可在配置文件中指定的路径中找到导出的Postman文件 `/postman/show-postman.json` ## 配置文件 项目的配置文件被放在了`PanPost/resources/ApplicationConfig.yaml` 下面是各个配置项的介绍 ```yaml # PanPost为了方便测试管理http报文,我定义了可以在http报文中的注释,注释内容在PanPost收发请求时会被忽略 # PanPost默认的注释格式是 “## 注释内容 ” # 你可以通过下面的配置文件选项开启关闭注释和更改注释格式(建议不要更改注释格式) http-comments: # 是否开启注释 enabled: true sign: "##" # 注释的标志 # 如果你要更改注释的格式,不仅只需要更改注释的标志,还要将 clear-regex 中的正则表达式也更改为你新的注释格式 # 注释的正则表达式 这里是注释是在报文的每一行 ## 后面的内容 clear-regex: "(^(?:\\s*##.*(?:\\r\\n|\\n|\\r))+)|((?:\\r\\n|\\n|\\r)\\s*##.*)|(##.*)" # 清除注释的正则表达式 log: # 是否开启将收发请求记录到日志文件 enabled: true # 日志文件路径 path: "resources/log/log.txt" local: # 支持通配符匹配,支持批量测试多个请求 # 请求文件路径 paths: - "resources/message/show/*/*" # 项目的报文的基本路径 # 所有的报文结构只能是在 base-path 下的子文件夹中存放, # 子文件中没有其他文件夹 message: path: # 报文基本路径 base: "resources/message" # 导出的Postman Collection 配置的位置,基于 base-path 路径上 postman: # 导出的Postman Collection 配置的位置,基于 base-path 路径上 path: "postman" suffix: "-postman.json" web: # web 服务端口 port: 8114 ```