Go标准库中的Net/http提供了http server的方法。
首先编写一个基本的HTTP服务器示例。
代码解析:
第3行:导入 # 34;net/http # 34;,导入net/http包
14行:http。handle func( # 34;/#34;,HelloWorld),使用HandleFunc方法创建路由“/”,第二个参数是指定相应的函数来处理发送到路径“/”的请求
第7行:funcHelloWorld (w http。ResponseWriter。Request) {},定义helloworld函数,接受http。ResponseWriter和*http。请求请求指针,这样在这个函数中,* http.request可以查看和操作请求,然后相应的把http.responsewriter给浏览器。
第8行:w . Write([]字节( # 34;你好golang web # 34),对应W的Write方法,生成的HTTP响应包含响应体、头和状态(如200、404等。),[]字节( # 34;你好golang web # 34)表示将字符串转换成字节。
15行:http。ListenAndServe( # 34;:8080#34;,nil),为了响应客户端,用ListenAndServe启动服务器,同时监听localhost和端口8000。
在浏览器中输入http://127.0.0.1:8080/显示得到的结果。
其他工具:
在web开发过程中,我习惯用邮差工具进行测试。
路由响应:
http。handle func( # 34;/#34;HelloWorld),注册url地址并设置响应的函数。需要注意的是,HelloWorld是作为参数传递的,而不是被调用的,所以不需要加括号()。
注册路由的时候,URL里面写什么就写什么,而且必须完全匹配。也就是说,如果注册了/users/
响应函数
将路由器映射到响应函数,可以读写头,查看请求类型,分析请求数据,验证身份,查看请求类型。
下面是一个带有修改标题的相应演示。
第6行:w.Header()。设置( # 34;从 # 34;,#34;今日头条GoPy # 34),设置响应头。
第7行:首先设置响应头,然后设置返回值。这是可行的,但是如果首先设置返回值,那么设置响应头是没有用的。
在浏览器中输入URL并打开开发者工具。您可以在响应头中看到来自:toutiao GoPy的相应值。
设置标题
返回json格式
w.标题()。设置( # 34;内容类型 # 34;, #34;应用/JSON;charset = utf-8 # 34;),并通过设置Content-Type返回json格式的内容。
可以创建、读取、更新和删除回复的标题。
响应不间断类型的内容
常见的内容类型包括文本/纯文本、文本/html、应用程序/json和应用程序/xml。
通过简单的修改,输出的是文本类型的内容。
获取请求数据
10行:w.Header()。设置( # 34;内容类型 # 34;,#34;应用程序/JSON # 34;)。将响应头的内容类型设置为json格式。
1行:var map 1 = map[string]interface { } { }。定义一个映射,键是字符串,值是接口类型
12行:对于k,v := range r.URL.Query()。通过循环r.URL.Query获取Get的数据K是键,V是值,V是string类型的切片。
16行:marshal,_ := json。编组(地图1)。Json。Marshal将映射转换为json的字节集类型
17行:w.Write([]byte(string(marshal)))。使用w的Write方法输出json格式内容。
获取发布请求数据



