zoukankan      html  css  js  c++  java
  • [Go] 自定义一些http Server的参数 用到了interface的一些特性

    在一个http服务中  , 如果要定义一些参数比如读超时时间 , 写超时时间 , 那么用最简单的http.ListenAndServe 就不能实现了

    需要自己实例化http.Server结构体 ,实例化完成以后 , 之前的路由怎么加进去又是一个问题

    http.Server中处理请求响应是通过属性里的Handler来完成的 , 而属性里的Handler是一个interface接口类型 , 必须实现的方法是ServeHTTP(ResponseWriter, *Request)

    正好ServeMux这个处理路由的结构体实现了ServeHTTP(ResponseWriter, *Request)方法 , 那么就能直接把这个结构体加进去

        log.Println("listen on 8080...
    go:http://127.0.0.1:8080")
        mux:=&http.ServeMux{}
        //根路径
        mux.HandleFunc("/", controller.ActionIndex)
        //邮件夹
        mux.HandleFunc("/list", controller.ActionFolder)
        //登陆界面
        mux.HandleFunc("/login", controller.ActionLogin)
    
        s := &http.Server{
            Addr:           ":8080",
            Handler:        mux,
            ReadTimeout:    30 * time.Second,
            WriteTimeout:   30 * time.Second,
            MaxHeaderBytes: 1 << 20,
        }
        s.ListenAndServe()

     这样路由也能用 , 还能给Server自定义参数 

  • 相关阅读:
    移动app测试
    centos7中tomcat安装步骤
    linux下搭建数据库
    Linux 学习笔记
    vi编辑器 使用表
    python-Xml 实战
    python-Excel 实战
    手写HashMap
    volatile关键字解析
    两个栈实现队列——优化版
  • 原文地址:https://www.cnblogs.com/taoshihan/p/13019358.html
Copyright © 2011-2022 走看看