源码来自 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. 1分钟搭建极简mock server

    摘自博客园:https://www.cnblogs.com/mikasama/p/9838480.html 1.无聊的背景.起源: 如今的业务系统越来越复杂庞大,各个功能直接的调用也是多如牛毛,但如果 ...

  2. 如何优雅的使用Mock Server

    事出有因 昨天跟同事讨论我们在用的rap2(一个集接口编写和mock server的开源项目)和刚上线了一个easy-mock的server,到底哪个好用. 我们主要讨论的点有个两个: 接口的一致性. ...

  3. python接口测试实战_Python接口测试实战5(下) - RESTful、Web Service及Mock Server

    课程目录 更多学习资料请加添加作者微信:superz-han获取 本节内容 REST及RESTful API Web Service XML解析 Mock Server REST及RESTful AP ...

  4. java mockserver搭建_搭建Mock Server

    1.为什么要搭建mock-server? 为了更好的分工合作,让前端能在不依赖后端环境的情况下进行开发,其中一种手段就是为前端开发者提供一个 web 容器,这个本地环境就是 mock-server. ...

  5. SAP UI5 应用开发教程之六十三 - 基于 OData V4 的本地 Mock Server 实现的深入介绍试读版

    一套适合 SAP UI5 初学者循序渐进的学习教程 教程目录 SAP UI5 本地开发环境的搭建 SAP UI5 应用开发教程之一:Hello World SAP UI5 应用开发教程之二:SAP U ...

  6. SAP UI5 应用开发教程之六十三 - 基于 OData V4 的本地 Mock Server 实现的深入介绍

    学习本步骤之前,请确保你已经复习了步骤 26 和 步骤 62 的知识: SAP UI5 应用开发教程之二十六 - OData 服务配合 Mock 服务器的使用步骤详解 SAP UI5 应用开发教程之六 ...

  7. 如何以 mock server 的方式本地启动 SAP UI5 应用,使它不连接服务器端 OData 服务

    我们在做 SAP UI5 开发时,在视图逻辑没有开发完毕时,往往不希望连接服务器端的 OData 服务进行联调,而仅仅连接本地端的测试数据. 本文介绍如果启动本地 mock server,将 SAP ...

  8. 搭建Mock Server

    搭建Mock Server 1.为什么要搭建mock-server? 为了更好的分工合作,让前端能在不依赖后端环境的情况下进行开发,其中一种手段就是为前端开发者提供一个 web 容器,这个本地环境就是 ...

  9. pythonflaskmock数据_Flask实现简单Mock Server

    Mock Server充当的角色: Mock server在实际项目中的意义就相当于数据库.将我想要的数据返回给我就行,我并不关心你怎么逻辑处理的. 一般的应用程序请求方式是GET和POST. Fla ...

  10. 基于django rest framework的mock server实践

    网上找了一下mock server的实现,发现python的基本都是基于flask来实现的,因最近在学django,就尝试用drf实现了下: A brief introduction of sui_m ...

最新文章

  1. 陆奇要离职?先看看百度财报吧
  2. 【SpringCloud】Ribbon-实例
  3. 云端大数据实战记录-大数据推荐
  4. Html5+razor+jqmobile尝鲜
  5. 云原生系列「三」容器网络
  6. VTK:PolyData之ShrinkPolyData
  7. IntelliJ IDEA 如何创建一个普通的java项目,及创建java文件并运行
  8. java 应用程序 gui_Java GUI应用程序关闭陷阱
  9. 抓住训练集中真正有用的样本,提升模型整体性能!
  10. 盖茨每一秒能赚多少钱,他现在最担心的是什么?
  11. Android设置Alpha值实现图片渐变效果
  12. 登录tomcat服务器首页直接跳转到项目
  13. C#基础知识之读取xlsx文件Excel2007
  14. html select 默认不选,解决设置select默认选中不生效的方法
  15. RSA算法详解及手算过程
  16. CIE1931标准色度系统
  17. 86版五笔单字效率分析
  18. fatal: Exiting because of unfinished merge.致命的:由于合并未完成而退出。
  19. 曼尼托巴大学计算机科学硕士,加拿大曼尼托巴大学优势专业有哪些
  20. 备份 mysql 数据库

热门文章

  1. python之花瓣美女下载
  2. C语言stdio头文件常见的输入输出库函数
  3. 《SAP快速入门》视频课程
  4. 计算机相关英语词汇ppt,计算机专业英语词汇新.ppt
  5. Flash Builder 4 破解
  6. Android 导出应用的数据库的两种常用方法,db查看器 SQLite Expert Personal下载
  7. protues8.0仿真视频教程 51单片机教程
  8. mysql表单设计_【mysql】自定义表单系统 如何设计数据库
  9. 【静态ip保姆级教程他来了】
  10. 影音先锋 android下载地址,影音先锋手机版-影音先锋下载v5.8.2 安卓手机版-西西软件下载...