【GoLang】Web应用Get请求样例

70 阅读1分钟

原文地址 mp.weixin.qq.com

Hello , Go Web ~

HelloWorld

package main


import (
    "log"
    "net/http"
)


func viewHandler(writer http.ResponseWriter, request *http.Request) {
    message := []byte("Hello,Go~")


    _, err := writer.Write(message)
    if err != nil {
        log.Fatal(err)
    }
}


func main() {
    http.HandleFunc("/hello", viewHandler)
    err := http.ListenAndServe("localhost:8080", nil)
    log.Fatal(err)
}

解释

writer http.ResponseWriter 响应输出
request *http.Request 输入
message := []byte("Hello,Go~") 字符串转字节流
 _, err := writer.Write(message) 响应写入页面
 http.HandleFunc("/hello", viewHandler) 
 "/hello" 请求路径 viewHandler 响应函数
 http.ListenAndServe("localhost:8080", nil) 监听服务

运行测试

go run hello_web.go

图片

获取请求值

package main


import (
    "log"
    "net/http"
)


func viewHandler(writer http.ResponseWriter, request *http.Request) {
    hello := request.FormValue("hello")


    _, err2 := writer.Write([]byte(hello))


    if err2 != nil {
        log.Fatal(err2)
    }
}


func main() {
    http.HandleFunc("/hello", viewHandler)
    err := http.ListenAndServe("localhost:8080", nil)
    log.Fatal(err)
}

解释

hello := request.FormValue("hello")
获取request请求值

运行测试

go run hello_web_request.go
http://127.0.0.1:8080/hello?hello=zuoyang

图片

Bmi程序

package main


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


func bmi(height float64, weight float64) string {
    fmt.Println("你的身高(m)是:", height, "你的体重(KG)是:", weight)


    var bmi_num float64 = weight / (height * height)


    var bmi_status string


    if bmi_num < 18.5 {
        bmi_status = "消瘦"
    } else if bmi_num > 18.5 && bmi_num < 24.9 {
        bmi_status = "正常"
    } else if bmi_num > 25 && bmi_num < 27.9 {
        bmi_status = "超重"
    } else if bmi_num > 28 {
        bmi_status = "肥胖"
    }
    return bmi_status
}


func viewHandler(writer http.ResponseWriter, request *http.Request) {
    // var height float64
    height, _ := strconv.ParseFloat(request.FormValue("height"), 64)
    // var weight float64
    weight, _ := strconv.ParseFloat(request.FormValue("weight"), 64)


    value := string(bmi(height, weight))


    _, err2 := writer.Write([]byte(value))


    if err2 != nil {
        log.Fatal(err2)
    }
}


func main() {
    http.HandleFunc("/hello", viewHandler)
    err := http.ListenAndServe("localhost:8080", nil)
    log.Fatal(err)
}

解释

strconv.ParseFloat(request.FormValue("height"), 64) 字符串类型转换
func bmi(height float64, weight float64) string {} 函数 func 关键字 bmi() 入参列表/数据类型 string 返回值类型
bmi(height, weight) 函数调用

运行测试

go run hello_web_bmi.go


http://127.0.0.1:8080/hello?height=1.85&weight=85

图片

感谢您的观看,Yes!