您的位置 首页 golang

Go语言编程从入门到精通,WEB服务,路由、响应、报头、GET、POST

Go标准库中的net/http提供了http服务器的方法。

从写一个最基本的HTTP服务器示例开始学习。

代码解析:

3行:import “net/http”,导入net/http包

14行:http.HandleFunc(“/”, HelloWorld)中,使用HandleFunc方法创建路由“/”,第二个参数是指定处理发送到路径“/”请求的相应函数

7行:func HelloWorld(w http.ResponseWriter, r *http.Request) {},定义了HelloWorld函数,接受http.ResponseWriter和*http.Request请求指针,这样就可以在这个函数中,*http.Request查看、操作请求,之后将http.ResponseWriter相应给浏览器。

8行:w.Write([]byte(“hello golang web”)),使用w的Write方法相应,生成的HTTP响应含有响应体、报头和状态(比如200,404等),[]byte(“hello golang web”)表示将字符串转成字节。

15行:http.ListenAndServe(“:8080”, nil),是为了响应客户端,用ListenAndServe启动服务器,同时监听localhost和端口8000

在浏览器中输入,显示获取到的结果。

其他工具:

在做web开发的过程中,习惯用postman工具来做测试。

路由响应:

http.HandleFunc(“/”, HelloWorld),注册url地址并设置响应的函数,需要注意的是HelloWorld是作为参数传递的,而不是调用,因此不用加括号()。

注册路由的时候,是什么就在URL里写什么,必须要完整匹配,也就是说如果注册了/users/,那么URL写成/users,就不行。

响应函数

路由器将路由映射到响应函数,响应函数可以读写报头、查看请求类型、分析请求数据、验证身份、查看请求类型。

下面是一个修改了报头的相应的演示。

6行:w.Header().Set(“from”,”toutiao GoPy”),设置了响应头

7行:首先设置响应头,然后设置返回值,这样是可以行得通,但是如果先设置了返回值,那么设置的响应头就是没有用的。

在浏览器中输入URL,打开“开发者工具”,可以看到响应头中有对应的值From: toutiao GoPy

设置报头

返回json格式

w.Header().Set(“Content-Type”, “application/json; charset=utf-8”),通过设置Content-Type返回json格式的内容。

设置响应的报头,不仅可以创建,也可以读取、更新和删除操作。

响应不停类型内容

常见的内容类型包括text/plain、text/html、application/json和application/xml类型。

通过简单修改,输出的是文本类型的内容。

获取GET请求数据

10行:w.Header().Set(“Content-Type”,”application/json”)。设置响应头的内容类型为json格式。

11行:var map1 = map[string]interface{}{}。定义一个map,key是string,value是interface类型

12行:for k, v := range r.URL.Query()。通过循环r.URL.Query获取get的数据,k是键,v是值,v是string类型的切片。

16行:marshal, _ := json.Marshal(map1)。json.Marshal将map转换为json的字节集类型

17行:w.Write([]byte(string(marshal)))。用w的Write方法输出json格式的内容。

获取POST请求数据

文章来源:智云一二三科技

文章标题:Go语言编程从入门到精通,WEB服务,路由、响应、报头、GET、POST

文章地址:https://www.zhihuclub.com/88700.shtml

关于作者: 智云科技

热门文章

网站地图