go语言启动一个http服务

124 阅读1分钟

go语言中模拟启动一个http服务很简单,由于go语言中net包提供了http服务,只需要2行代码就能简单实现一个http服务

好了废话不多说了 ,上代码

package main

import (
	"fmt"
	"net/http"
)

//go语言实现 http服务端
func main() {

	//注册路由
	http.HandleFunc("/",sayhello);
	//建立监听
	err := http.ListenAndServe("127.0.0.1:8080",nil)

	if err!=nil {
		fmt.Println("网络错误")
		return
	}

}

func sayhello(writer http.ResponseWriter, request *http.Request) {
	writer.Write([]byte("<p style='color:red;'>你好啊哈哈哈哈哈</p>"))
	//fmt.Fprint(writer,"<p style='color:red;'>你好啊哈哈哈哈哈</p>")

}

启动监听8080端口,我们使用浏览器来访问

在这里插入图片描述

可以看到非常方便简洁,不需要其他第三方容器啥的

另外使用go语言请求http服务

这里模拟请求www.json.cn:80服务

package main

import (
	"fmt"
	"io"
	"net"
)

//go语言 http请求数据
func main() {

	dial, err := net.Dial("tcp", "www.json.cn:80")
	if err!=nil{
		fmt.Println("网络错误,",err)
		return
	}

	//发送http 报文
	_, err = dial.Write([]byte("GET / HTTP/1.0 \r\n\r\n"))

	if err!=nil{
		fmt.Println("网络错误")
		return
	}

	var b[1024]byte
	for  {
		n, err := dial.Read(b[:])
		if err!=nil {
			return
		}

		if err == io.EOF {
			fmt.Println("请求到的数据:", string(b[:n]))
			return
		}

		fmt.Println("请求到的数据 :", string(b[:n]))
	}

}

可以看到请求返回的http报文

这里仅展示部分
在这里插入图片描述

go语言中http 不管是请求还是监服务很是简单,极少的代码就可以实现