当前位置: 代码网 > it编程>前端脚本>Golang > Go语言中http.ResponseWriter接口

Go语言中http.ResponseWriter接口

2024年09月08日 Golang 我要评论
在 go 语言中,客户端请求信息都封装到了 request 对象,并通过 responsewriter 将响应发送回客户端:package mainimport ("fmt""net/http")fu

在 go 语言中,客户端请求信息都封装到了 request 对象,并通过 responsewriter 将响应发送回客户端:

package main

import (
	"fmt"
	"net/http"
)

func myhandler(w http.responsewriter, r *http.request) {
	fmt.fprintln(w, "hello world")
}

func main() {
	http.handlefunc("/go", myhandler)

	http.listenandserve("127.0.0.1:8000", nil)
}

responsewriter 源码结构如下:

type responsewriter interface {
   // 用于设置/获取所有响应头信息
	header() header
   // 用于写入数据到响应实体
	write([]byte) (int, error)
   // 用于设置响应状态码
	writeheader(statuscode int)
}

包含三个方法:

  • writeheader:主要作用是在 api 接口中返回错误码,支持传入一个整型数据用来表示响应状态码,如果不调用该方法的话,默认响应状态码是 200 ok。
  • header:用于设置响应头信息,可以通过 w.header().set 方法设置响应头;通过 w.header().add 方法新增响应头
  • write:用于写入数据到 http 响应实体,如果调用 write 方法时还不知道 content-type,会通过数据的前 512 个字节进行判断。

例如:w.header().set("content-type", "application/octet-stream")

content-type

指示响应内容的格式,如果这个类型浏览器能够支持阅览并且没有设置content-disposition情况浏览器就会直接展示该资源,比如png、jpeg、video等格式,如果浏览器不支持就会,默认触发下载。常见如下格式:

在这里插入图片描述

content-disposition

包含响应数据的描述信息,以及下载或者在线查看的处理方式。

application/octet-stream

在某些下载文件的场景中,服务端可能会返回文件流,并在返回头中带上content-type: application/octet-stream,告知浏览器这是一个字节流,浏览器处理字节流的默认方式就是下载。

例如:当我们在浏览器输入http://localhost:9999/_geecache/scores/tom时,会触发下载:

在这里插入图片描述

到此这篇关于go语言中http.responsewriter接口的文章就介绍到这了,更多相关go http.responsewriter接口内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网! 

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com