Golang Web编程入门示例

Go语言内置了Web服务;net/http 标准库中包含有关HTTP协议的所有功能。这其中包括HTTP客户端和HTTP服务端,在本文中,你将发现使用GO创建一个可在浏览器中查看的WEB服务程序非常简单。

注册请求处理函数

首先,创建一个处理程序;该处理程序从浏览器,HTTP客户端或API请求接收所有传入的HTTP连接。

func ( w http.ResponseWriter , r *http.Request)

该函数接收两个参数:

一个http.ResponseWriter 用于text/html响应。

http.Request 其中包含有关此HTTP请求的所有信息,包括URL或者请求头字段之类的信息。

将请求处理函数注册到默认的HTTP Server:

http.HandleFunc("/",func(w http.ResponseWriter,r *http.Request){
    fmt.Fprintf(w,"你好,你请求了:%s\n",r.URL.Path)
})

侦听HTTP连接

仅请求处理程序不能接受来自外部的任何HTTP连接。HTTP服务器必须侦听端口以将连接传递到请求处理程序。大多数情况下,80端口是HTTP服务的默认端口,所以本示例中还将侦听它,你可以自行修改。

以下代码将启动Go的默认HTTP服务,并侦听80端口上的连接。你可以在浏览器上打开 http://localhost/ 或者http://127.0.0.1/ 看到程序实现效果。

http.ListenAndServe(":80",nil)

完整的示例代码

package main
 
import (
    "fmt"
    "net/http"
)
 
func main() {
    http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
        fmt.Fprintf(w, "你好,你的请求是 %s\n", r.URL.Path)
    })
 
    http.ListenAndServe(":80", nil)
}

将代码保存为go_web.go,并使用Go 进行编译;

如无报错,你会得到一个go_web.exe 可执行文件(Windows系统下),运行它。如果你的系统装有防火墙,可能会进行拦截,允许就好。

现在打开浏览器,输入 http://127.0.0.1/ 即可查看效果,不妨在后面加几个字符,你会看到不同的效果。

原创内容,如需转载,请注明出处;

本文地址: https://www.perfcode.com/p/1411.html

分类: 计算机技术
推荐阅读:
Rust获取目录下的所有文件名 在 Rust 中,要获取一个目录下的所有文件名,您可以使用标准库中的 std::fs 模块来进行文件系统操作。
Rust line宏的用法和示例 在Rust中,line宏用于获取代码中当前的行号;通过在代码中使用line宏,开发者可以轻松地在编译时获取到所在位置地行号信息,从而实现更灵活地代码逻辑和调试方案。
C语言isprint()函数:判断字符是否可打印 isprint()是C语言标准库中的一个函数,用于检查一个字符是否为可打印字符;该函数与isgraph()函数有点相似,isgraph()函数也用于检查一个字符是否为可打印字符(但不包括空格字符),而isprint()函数则包含空格字符;
Golang在Windows环境下编译出Linux环境下运行的可执行程序 我们可以使用这种方法在Windows系统下编译出其它平台的可执行程序,相反,也可以在Linux系统下编译出Windows平台的可执行程序。
Python实现与智能机器人交互 本文将利用API与智能机器人进行人机交互,进行简单的聊天对话;代码由Python语言实现。
Python bytes()函数 bytes 是 Python 中的一个内置类,用于表示二进制数据。bytes 对象是不可变的,即一旦创建,就不能修改其中的元素。由于二进制数据通常是不可变的,因此 bytes 类型广泛应用于文件、网络通信等场合。