ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Go-搭建服务器(自己写方法)

2022-06-11 10:36:35  阅读:128  来源: 互联网

标签:http MyHandler fmt myHandler func Go 服务器 main 搭建


1.自己写方法

image

package main

import (
	"fmt"
	"net/http"
)

type MyHandler struct{}

func (m *MyHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
	fmt.Fprintln(w, "通过自己创建的处理器处理请求! ")
}

func main() {
	myHandler := MyHandler{}
	http.Handle("/myHandler", &myHandler)
	//创建路由
	http.ListenAndServe(":8080", nil)
	//http的端口是80 https的端口是443
	//https://www.baidu.com/
}

image

输入

http://localhost:8080/myHandler

image

2.用serve对服务器作更详细的配置

image

package main

import (
	"fmt"
	"net/http"
	"time"
)

type MyHandler struct{}

func (m *MyHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
	fmt.Fprintln(w, "通过详细配置服务器的信息来处理请求! ")
}

func main() {
	myHandler := MyHandler{}
	//创建Server结构,并详细配置里面的字段
	server := http.Server{
		Addr:        ":8080",
		Handler:     &myHandler,
		ReadTimeout: 2 * time.Second,
	}
	server.ListenAndServe()
}

image

image

3.使用自己创建的多路复用器

在创建服务器时,我们还可以通过NewServeMux方法创建一个多路复用器

mux := http.NewServeMux()

进行创建

package main

import (
	"fmt"
	"net/http"
)

//创建处理器函数
func handler(w http.ResponseWriter, r *http.Request) {
	fmt.Fprintln(w, "通过自己创建的多路复用器处理请求", r.URL.Path)
}

//handler函数名可以随便取,里面的参数是固定的
//方法和函数的区别是:是否绑定实例

func main() {
	mux := http.NewServeMux()
	mux.HandleFunc("/", handler)
	//HanderFunc(handler)会将handler转换成一个实现了Handler接口的HandlerFunc类型
	//创建路由
	http.ListenAndServe(":8080", mux)
	//http的端口是80 https的端口是443
	//https://www.baidu.com/
}

image

image

标签:http,MyHandler,fmt,myHandler,func,Go,服务器,main,搭建
来源: https://www.cnblogs.com/jgg54335/p/15835905.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有