1、使用golang的net包很容易就可以实现我们的功能;侦听端口:var listener, err = net.Listen("tcp", ":8090") //任意本机ip, 这里是8090端口,可以改成其他你需要的端口
2、接收请求:var conn, err = listener.Accept() //收到一个请求或出错才会返回注意,要在一个无限循环里处理请求,不然接收到一个请求程序就退出了。
3、处理请求:go func(c net.Conn) {//处理逻辑}(con艘绒庳焰n)为了可以并发,起一个routine去处理请求,在菀蒯踔观我们的需求里不需要支持并发的,但golang里只要加一个go关键词就变成并发了,没实现成本,何乐而不为呢?注意,通过参数将连接变量传入闭包,而不是直接在闭包里捕捉conn变量,这是一个好习惯,大家可以思考下为什么。
4、使用curl测试,在调试RESTFul api时,curl命令应该是最便捷的工具了,下面我们来看看curl的原始请求:curl -XGET localhost:8090/_cluster/health?pretty=true其中-XGET指定http method为GET,类似的POST为-XPOST、PUT为-XPUT等。
5、curl这次请求的原始数据就可以看得一清二楚了。