使用Go内置库实现简易httpbin功能
简介
通过学习「Go语言圣经」的入门部分,了解到 go 内置库里提供了一个简单的 http 功能。于是想模拟下httpbin1的 get 方法显示 header 头信息的功能来练手。
本人 Go 初学小白,为了练习只是简单的实现了请求 header 的 JSON 格式展示,跟 httpbin 功能相差甚远,还请见谅。
知识点
- go http
- go json 序列化
代码
1.包导入
- net/http: 简易 http 功能
- log: 简易 logging 功能
- encoding/json: json 序列化功能
- fmt: 格式化输出
- strings: 字符串操作
2.声明结构体类型(保存请求头数据)
2.1 先看下 httpbin 的 get 方法返回的 JSON 结构
// Request URL:httpbin.org/get?user=test&pwd=xxx
{
"args": {
"pwd": "xxx",
"user": "test"
},
"headers": {
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3",
"Accept-Encoding": "gzip, deflate",
"Accept-Language": "zh-CN,zh;q=0.9",
"Cache-Control": "max-age=0",
"Host": "httpbin.org",
"Upgrade-Insecure-Requests": "1",
"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169