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

Go语言编程从入门到精通,WEB服务,路由、响应、报头、GET、POSTGo标准库中的net/http提供了http服务器的方法。从写一个最基本的HTTP服务器示例开始学习。代码解析:3行:import "

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

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

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

代码解析:

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

在浏览器中输入http://127.0.0.1:8080/,显示获取到的结果。

其他工具:

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

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

路由响应:

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

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

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

响应函数

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

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

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

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

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

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

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

设置报头

返回json格式

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

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

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

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

响应不停类型内容

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

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

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

获取GET请求数据

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

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://bianchenghao.cn/4162.html

(0)
编程小号编程小号
上一篇 2022-12-26
下一篇 2022-12-27

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注