网站首页 > 教程文章 正文
上一节学习了POST请求,Form、PostForm、MultipartForm、上传文件
本节学习:修改状态码、获取(修改)Header信息、设置302跳转、返回Json信息
首先写一个最简单的代码作为开始,后续进行修改。
可以看到返回的状态码是200 OK,
(1)修改返回状态码
简单修改一下,实现修改状态码的功能
注意:WriteHeader修改状态码的目的是为了发送错误类的HTTP状态码,比如301、404、500等
(2)获取Header信息
Header包含由服务器接收或由客户端发送的请求报头字段。
例如:
Header = map[string][]string{
"Accept-Encoding": {"gzip, deflate"},
"Accept-Language": {"en-us"},
"Foo": {"Bar", "two"},
}
HTTP定义报头名称不区分大小写。
对于客户端请求,某些报头(如Content-Length和Connection)会在需要时自动写入,报头中的值可能会被忽略。
(3)设置302跳转
代码解析
func ResponseWriter2(w http.ResponseWriter, r *http.Request) {
//w.Header().Set的功能是自定义设置header信息,
//1个key对应1个value,键不区分大小写
w.Header().Set("Location","http://www.toutiao.com")
//WriteHeader发送一个带有提供的状态码的HTTP响应头,如果未设置,将默认WriteHeader(http.StatusOK),除非自定义设置状态码。
//状态码必须是有效的HTTP 1xx-5xx状态码。
w.WriteHeader(302)
}
(4)设置JSON返回
代码解析:
func ResponseWriter3(w http.ResponseWriter, r *http.Request) {
//w.Header().Set的功能是自定义设置header信息,
//设置Content-Type的值为application/json
w.Header().Set("Content-Type", "application/json")
//1. 设置map,键的类型是string,值的类型是string
//2. json.Marshal将map转换成json的[]byte类型
bytes, _ := json.Marshal(map[string]string{
"username": "GoPy",
"password": "123456",
})
- 上一篇: HTTP 301和302
- 下一篇: 301重定向是什么意思(为什么要做301跳转呢)
猜你喜欢
- 2025-05-16 2021年末,写给计算机系大四学弟学妹!超级干货(建议收藏)
- 2025-05-16 破解HLS低延时的密匙: HLS+技术解密(一)
- 2025-05-16 Spring Security 简单教程以及实现完全前后端分离
- 2025-05-16 揭秘黑产“箱子后门”背后的产业链
- 2025-05-16 seo经验:交换友情链接终极技巧大全
- 2025-05-16 HTTP与HTTPS的区别,详细介绍
- 2025-05-16 「黑客编程」手把手教你编写POC
- 2025-05-16 Moz专家:如何将五个网站迁移至一个新域名
- 2025-05-16 想做好SEO?你必须掌握的10个基础知识上集
- 2025-05-16 想学渗透学不会?手把手教你渗透实战流程
- 05-162021年末,写给计算机系大四学弟学妹!超级干货(建议收藏)
- 05-16破解HLS低延时的密匙: HLS+技术解密(一)
- 05-16Spring Security 简单教程以及实现完全前后端分离
- 05-16揭秘黑产“箱子后门”背后的产业链
- 05-16seo经验:交换友情链接终极技巧大全
- 05-16HTTP与HTTPS的区别,详细介绍
- 05-16「黑客编程」手把手教你编写POC
- 05-16Moz专家:如何将五个网站迁移至一个新域名
- 最近发表
- 标签列表
-
- location.href (44)
- document.ready (36)
- git checkout -b (34)
- 跃点数 (35)
- 阿里云镜像地址 (33)
- qt qmessagebox (36)
- md5 sha1 (32)
- mybatis plus page (35)
- semaphore 使用详解 (32)
- vue @scroll (38)
- 堆栈区别 (33)
- 什么是容器 (33)
- sha1 md5 (33)
- navicat导出数据 (34)
- 阿里云acp考试 (33)
- 阿里云 nacos (34)
- redhat官网下载镜像 (36)
- srs服务器 (33)
- pico开发者 (33)
- https的端口号 (34)
- vscode更改主题 (35)
- 阿里云资源池 (34)
- os.path.join (33)
- redis aof rdb 区别 (33)
- 302跳转 (33)