前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Go 学习笔记2 - 构建个简单的 http 服务

Go 学习笔记2 - 构建个简单的 http 服务

作者头像
张云飞Vir
发布2020-03-16 16:56:10
3230
发布2020-03-16 16:56:10
举报
文章被收录于专栏:写代码和思考写代码和思考

概述

Go 自带的 http 包很强大,通过它可以轻松构建个简单的 http 服务。

ListenAndServe

ListenAndServe 方法可以开启一个 HTTP 服务,这个函数接收 一个地址,和一个 handler 。一般情况下,第二个参数 handler 写成 nil,也就是 使用默认的 DefaultServeMux。

通过 Handle 方法 和 HandleFunc 方法,可以添加 许多handler 到 这个默认的DefaultServeMux。示例:

代码语言:javascript
复制
http.Handle("/foo", fooHandler)

http.HandleFunc("/bar", func(w http.ResponseWriter, r *http.Request) {
    fmt.Fprintf(w, "Hello, %q", html.EscapeString(r.URL.Path))
})

log.Fatal(http.ListenAndServe(":8080", nil))

自定 Server 对象

更多控制 server 的行为的方式是 创建一个自定的 Server对象 来实现。示例:

代码语言:javascript
复制
s := &http.Server{
    Addr:           ":8080",
    Handler:        myHandler,
    ReadTimeout:    10 * time.Second,
    WriteTimeout:   10 * time.Second,
    MaxHeaderBytes: 1 << 20,
}
log.Fatal(s.ListenAndServe())

完整示例

代码语言:javascript
复制
package main

import (
  "fmt"
  "net/http"
  "log"
  "html"
)


func main() {

  http.HandleFunc("/bar", func(w http.ResponseWriter, r *http.Request) {
    fmt.Fprintf(w, "Hello, %q", html.EscapeString(r.URL.Path))
  })

  log.Fatal(http.ListenAndServe(":8080", nil))

  // 在浏览器 打开网址: http://localhost:8080/bar 即可看到
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 概述
  • ListenAndServe
  • 自定 Server 对象
  • 完整示例
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档