zoukankan      html  css  js  c++  java
  • golang 简单的http服务

    一个简单的http 服务, 源码如下:
    func TestHttp(t *testing.T){
    http.HandleFunc("/", sayhelloName) //设置访问的路由
    http.HandleFunc("/login", login) //设置访问的路由
    err := http.ListenAndServe(":9090", nil) //设置监听的端口
    if err != nil {
    log.Fatal("ListenAndServe: ", err)
    }
    }
    func sayhelloName(w http.ResponseWriter, r *http.Request) {
    r.ParseForm() //解析url传递的参数,对于POST则解析响应包的主体(request body)
    //注意:如果没有调用ParseForm方法,下面无法获取表单的数据
    fmt.Println(r.Form) //这些信息是输出到服务器端的打印信息
    fmt.Println("path", r.URL.Path)
    fmt.Println("scheme", r.URL.Scheme)
    fmt.Println(r.Form["url_long"])
    for k, v := range r.Form {
    fmt.Println("key:", k)
    fmt.Println("val:", strings.Join(v, ""))
    }
    fmt.Fprintf(w, "Hello astaxie!") //这个写入到w的是输出到客户端的
    }

    func login(w http.ResponseWriter, r *http.Request) {
    fmt.Println("method:", r.Method) //获取请求的方法
    if r.Method == "GET" {
    t, _ := template.ParseFiles("login.gtpl")
    log.Println(t.Execute(w, nil))
    } else {
    //请求的是登录数据,那么执行登录的逻辑判断
    fmt.Println("username:", r.Form["username"])
    fmt.Println("password:", r.Form["password"])
    }
    }

  • 相关阅读:
    C/C++的区别
    stm32之UCOS-III
    PID控制及整定算法
    PCB设计基础及技巧
    电路的一些基本理论
    stm32与三菱PLC通信
    stm32之外设控制
    stm32之内部功能
    JavaScript数组方法详解
    git新建关联克隆仓库指令
  • 原文地址:https://www.cnblogs.com/EvildoerOne/p/8337300.html
Copyright © 2011-2022 走看看