GoLang Request 无法获取 Hostname

GoLang Request 无法获取 Hostname

十一月 22, 2019

日前,楼主写了一个安装某工具的脚本用以下载支持不同系统的脚本,其中包括如下版本:

  • Gin.Context 版本如下图,实现方式感觉不够优雅:

image

  • GoLang 模版版本:

image

附模版:

image

优雅是优雅了一些,但是渲染之后的模板出现了获取不到 Hostname ( paramA ) 参数的问题,效果如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#!/bin/sh

set -e

curl -kSL https://XXX/download/linux_x`getconf LONG_BIT`/XXX_`uname -m` -o /usr/bin/XXX

if [ ! -s /usr/bin/XXX ]; then
echo "Download Error : No agent version suitable for the current system was found";
else
chmod +x /usr/bin/XXX

XXX register --host --paramB paramB --paramC paramC

XXX install

XXX start
fi

打印日志效果如下:

image

上图所列方法均无法获取,查询 Golang 官方文档描述如下:

image

使用 c.Request.Host 进行获取,成功。[ 这里的 c 是指 gin.Context ,博主使用的是 gin 框架,但是 request 和 net/http 包是没有本质上的区别的 ]:

image