实例

import ("fmt""net/http""strings"
)func myHandler(w http.ResponseWriter, r *http.Request) {//解析参数,默认是不会解析的r.ParseForm()fmt.Fprintf(w, "%v\n", r.Form)fmt.Fprintf(w, "path:%s\n", r.URL.Path)fmt.Fprintf(w, "schema:%s\n", r.URL.Scheme)//get查询字符串fmt.Fprintf(w, "form:%s\n", r.Form)//控制台打印for k, v := range r.Form {fmt.Println("key: ", k)fmt.Println("value: ", strings.Join(v, ""))}fmt.Fprintf(w, "hello world\n")
}func main() {//第一个参数是url的http.HandleFunc("/health", myHandler)//用于指定的tcp网络地址监听//第一个参数是监听地址,第二个参数是服务端处理程序,通常为空,为空表示服务端调用http.DefaultServeMux处理err := http.ListenAndServe("127.0.0.1:8183", nil)if err != nil {fmt.Println("有错误: ", err)}
}

httptest

import ("fmt""net/http""net/http/httptest""testing"
)func TestMyHandler(t *testing.T) {//创建一个请求req, err := http.NewRequest("GET", "/health", nil)if err != nil {t.Fatal(err)}// 我们创建一个 ResponseRecorder (which satisfies http.ResponseWriter)来记录响应rr := httptest.NewRecorder()//直接使用myHandler,传入参数rr,reqmyHandler(rr, req)// 检测返回的状态码if status := rr.Code; status != http.StatusOK {t.Errorf("返回的状态码是: %v",status)}// 检测返回的数据fmt.Println(rr.Body.String())
}

golang中的httptest相关推荐

  1. Golang中Buffer高效拼接字符串以及自定义线程安全Buffer

    本文原创文章,转载注明出处,博客地址 https://segmentfault.com/u/to... 第一时间看后续精彩文章.觉得好的话,顺手分享到朋友圈吧,感谢支持. Go中可以使用"+ ...

  2. 如何在golang中关闭bufio.reader_Golang 并发模型系列:1. 轻松入门流水线模型

    Go语言中文网,致力于每日分享编码.开源等知识,欢迎关注我,会有意想不到的收获! Golang作为一个实用主义的编程语言,非常注重性能,在语言特性上天然支持并发,它有多种并发模型,通过流水线模型系列文 ...

  3. go语言的iota是什么意思_关于Golang中的iota

    快速一览 iota是Golang中提供的一个简化常量和枚举编程的标识符,合理的使用这个标识符可以让代码变得更简洁,省去大量的不必要的代码. 比如下面的这个常量定义 const ( a = 1 b = ...

  4. Golang中的panic和recover(捕获异常)

    Golang中的panic和recover(捕获异常) 参考文章: (1)Golang中的panic和recover(捕获异常) (2)https://www.cnblogs.com/zhzhlong ...

  5. golang 中string和int类型相互转换

    总结了golang中字符串和各种int类型之间的相互转换方式: string转成int: test_int, err := strconv.Atoi(test_string) if err != ni ...

  6. golang中并发sync和channel

    golang中并发sync和channel chenbaoke · 2014-12-08 13:00:01 · 19151 次点击 · 预计阅读时间 5 分钟 · 不到1分钟之前 开始浏览 这是一个创 ...

  7. golang中的sync.WaitGroup

    golang中的sync.WaitGroup Posted on 2015/04/09刚才看golang的sync的包,看见一个很有用的功能.就是WaitGroup. 先说说WaitGroup的用途: ...

  8. 初步解读Golang中的接口相关编写方法

    初步解读Golang中的接口相关编写方法 概述如果说goroutine和channel是Go并发的两大基石,那么接口是Go语言编程中数据类型的关键.在Go语言的实际编程中,几乎所有的数据结构都围绕接口 ...

  9. golang中utf8和汉字互转

    golang中utf8和汉字互转 package mainimport ("fmt""strconv""strings" )func mai ...

最新文章

  1. C++Merege Sort合并排序的实现算法(附完整源码)
  2. visual studio 安装Entity framework失败
  3. LeetCode MySQL 1097. 游戏玩法分析 V
  4. Dubbo基本原理机制
  5. 关于MongoDB时区问题
  6. linux apache 2.2下载,Apache HTTP Server 2.2.26 发布下载
  7. 很漂亮动态个人主页自带音乐源码
  8. 智能水杯设计方案_多功能智能水杯设计方案
  9. Windows最强ssh客户端推荐 —— Bitvise SSH Client(一)
  10. cookie secure
  11. 电脑热点和虚拟机网卡冲突
  12. python安装以及插件安装
  13. bad interpreter: No such file or directory解决办法
  14. 【信号与系统】(二)信号与系统概述——基本信号
  15. SmartScreen 筛选器带来的麻烦
  16. Python写个小游戏:速算24点(上)
  17. 尹春鹏-Cocos游戏的自动化测试和崩溃分析
  18. Maya灯光【电影级灯光渲染-基础光】
  19. App 抓包问题与解决
  20. Vector的sort的使用

热门文章

  1. 【Android 安全】DEX 加密 ( 不同 Android 版本的 DEX 加载 | Android 8.0 版本 DEX 加载分析 | Android 5.0 版本 DEX 加载分析 )
  2. 【嵌入式开发】 ARM 关闭 MMU ( 存储体系 | I/D-Cache | MMU | CP15 寄存器 | C1 控制寄存器 | C7 寄存器 | 关闭 MMU )
  3. 【Android 应用开发】 Application 使用分析
  4. vue3.0以上关于打包后出现空白页和路由不起作用
  5. align 的用法(u-boot源代码分析)
  6. 可扩展Web架构与分布式系统
  7. JavaScript(循环)
  8. java文本输入输出小结
  9. PowerDesigner 小工具窗
  10. 汇编实验4.1文件代号下的文件管理中为什么buf_size为80而buf可以容纳200个字节,矛盾吗?(不矛盾)