golang 实现http mock server
源码来自 https://github.com/deis/mock-http-server
主要作用是开启一个本地的监听8080端口的http服务器,能够打印客户端的请求,方便进行调试。
package mainimport ("fmt""log""net/http"
)// Log the HTTP request
func logHandler(w http.ResponseWriter, r *http.Request) {log.Printf("%s %s %s", r.RemoteAddr, r.Method, r.URL)
}// mockHandler responds with "ok" as the response body
func mockHandler(w http.ResponseWriter, r *http.Request) {fmt.Fprintf(w, "ok\n")
}// rootHandler used to process all inbound HTTP requests
func rootHandler(w http.ResponseWriter, r *http.Request) {logHandler(w, r)mockHandler(w, r)
}// Start an HTTP server which dispatches to the rootHandler
func main() {http.HandleFunc("/", rootHandler)port := "8080"log.Printf("server is listening on %v\n", port)err := http.ListenAndServe(":"+port, nil)if err != nil {panic(err)}
}
如果需要打印header,请参考:https://www.cnblogs.com/5bug/p/8494953.html
func helloFunc(w http.ResponseWriter, r *http.Request) {fmt.Println("打印Header参数列表:")if len(r.Header) > 0 {for k,v := range r.Header {fmt.Printf("%s=%s\n", k, v[0])}}fmt.Println("打印Form参数列表:")r.ParseForm()if len(r.Form) > 0 {for k,v := range r.Form {fmt.Printf("%s=%s\n", k, v[0])}}
上完整版程序,支持json改变监听端口的。
package mainimport ("encoding/json""fmt""io/ioutil""log""net/http""os""strconv"
)// Log the HTTP request
func logHandler(w http.ResponseWriter, r *http.Request) {log.Printf("%s %s %s", r.RemoteAddr, r.Method, r.URL)
}// mockHandler responds with "ok" as the response body
func mockHandler(w http.ResponseWriter, r *http.Request) {fmt.Fprintf(w, "ok\n")
}func headerFunc(w http.ResponseWriter, r *http.Request) {if len(r.Header) > 0 {for k, v := range r.Header {fmt.Printf("%s=%s\n", k, v[0])}}r.ParseForm()if len(r.Form) > 0 {for k, v := range r.Form {fmt.Printf("%s=%s\n", k, v[0])}}
}// rootHandler used to process all inbound HTTP requests
func rootHandler(w http.ResponseWriter, r *http.Request) {logHandler(w, r)headerFunc(w, r)mockHandler(w, r)
}type API struct {Port int `json:"port"`
}var api API// Start an HTTP server which dispatches to the rootHandler
func main() {raw, err := ioutil.ReadFile("./api.json")if err != nil {fmt.Println(err.Error())os.Exit(1)}json.Unmarshal(raw, &api)if err != nil {log.Fatal(" ", err)}port := strconv.Itoa(api.Port) //"8080"http.HandleFunc("/", rootHandler)log.Printf("server is listening on %v\n", port)err = http.ListenAndServe(":"+port, nil)if err != nil {panic(err)}
}
api.json内容
{"port": 8081
}
golang 实现http mock server相关推荐
- 1分钟搭建极简mock server
摘自博客园:https://www.cnblogs.com/mikasama/p/9838480.html 1.无聊的背景.起源: 如今的业务系统越来越复杂庞大,各个功能直接的调用也是多如牛毛,但如果 ...
- 如何优雅的使用Mock Server
事出有因 昨天跟同事讨论我们在用的rap2(一个集接口编写和mock server的开源项目)和刚上线了一个easy-mock的server,到底哪个好用. 我们主要讨论的点有个两个: 接口的一致性. ...
- python接口测试实战_Python接口测试实战5(下) - RESTful、Web Service及Mock Server
课程目录 更多学习资料请加添加作者微信:superz-han获取 本节内容 REST及RESTful API Web Service XML解析 Mock Server REST及RESTful AP ...
- java mockserver搭建_搭建Mock Server
1.为什么要搭建mock-server? 为了更好的分工合作,让前端能在不依赖后端环境的情况下进行开发,其中一种手段就是为前端开发者提供一个 web 容器,这个本地环境就是 mock-server. ...
- SAP UI5 应用开发教程之六十三 - 基于 OData V4 的本地 Mock Server 实现的深入介绍试读版
一套适合 SAP UI5 初学者循序渐进的学习教程 教程目录 SAP UI5 本地开发环境的搭建 SAP UI5 应用开发教程之一:Hello World SAP UI5 应用开发教程之二:SAP U ...
- SAP UI5 应用开发教程之六十三 - 基于 OData V4 的本地 Mock Server 实现的深入介绍
学习本步骤之前,请确保你已经复习了步骤 26 和 步骤 62 的知识: SAP UI5 应用开发教程之二十六 - OData 服务配合 Mock 服务器的使用步骤详解 SAP UI5 应用开发教程之六 ...
- 如何以 mock server 的方式本地启动 SAP UI5 应用,使它不连接服务器端 OData 服务
我们在做 SAP UI5 开发时,在视图逻辑没有开发完毕时,往往不希望连接服务器端的 OData 服务进行联调,而仅仅连接本地端的测试数据. 本文介绍如果启动本地 mock server,将 SAP ...
- 搭建Mock Server
搭建Mock Server 1.为什么要搭建mock-server? 为了更好的分工合作,让前端能在不依赖后端环境的情况下进行开发,其中一种手段就是为前端开发者提供一个 web 容器,这个本地环境就是 ...
- pythonflaskmock数据_Flask实现简单Mock Server
Mock Server充当的角色: Mock server在实际项目中的意义就相当于数据库.将我想要的数据返回给我就行,我并不关心你怎么逻辑处理的. 一般的应用程序请求方式是GET和POST. Fla ...
- 基于django rest framework的mock server实践
网上找了一下mock server的实现,发现python的基本都是基于flask来实现的,因最近在学django,就尝试用drf实现了下: A brief introduction of sui_m ...
最新文章
- 陆奇要离职?先看看百度财报吧
- 【SpringCloud】Ribbon-实例
- 云端大数据实战记录-大数据推荐
- Html5+razor+jqmobile尝鲜
- 云原生系列「三」容器网络
- VTK:PolyData之ShrinkPolyData
- IntelliJ IDEA 如何创建一个普通的java项目,及创建java文件并运行
- java 应用程序 gui_Java GUI应用程序关闭陷阱
- 抓住训练集中真正有用的样本,提升模型整体性能!
- 盖茨每一秒能赚多少钱,他现在最担心的是什么?
- Android设置Alpha值实现图片渐变效果
- 登录tomcat服务器首页直接跳转到项目
- C#基础知识之读取xlsx文件Excel2007
- html select 默认不选,解决设置select默认选中不生效的方法
- RSA算法详解及手算过程
- CIE1931标准色度系统
- 86版五笔单字效率分析
- fatal: Exiting because of unfinished merge.致命的:由于合并未完成而退出。
- 曼尼托巴大学计算机科学硕士,加拿大曼尼托巴大学优势专业有哪些
- 备份 mysql 数据库
热门文章
- python之花瓣美女下载
- C语言stdio头文件常见的输入输出库函数
- 《SAP快速入门》视频课程
- 计算机相关英语词汇ppt,计算机专业英语词汇新.ppt
- Flash Builder 4 破解
- Android 导出应用的数据库的两种常用方法,db查看器 SQLite Expert Personal下载
- protues8.0仿真视频教程 51单片机教程
- mysql表单设计_【mysql】自定义表单系统 如何设计数据库
- 【静态ip保姆级教程他来了】
- 影音先锋 android下载地址,影音先锋手机版-影音先锋下载v5.8.2 安卓手机版-西西软件下载...