为了账号安全,请及时绑定邮箱和手机立即绑定

获取一个简单的服务器来显示网页

获取一个简单的服务器来显示网页

Go
不负相思意 2021-11-22 18:43:47
我正在编写一个简单的服务器作为一个项目来帮助我学习 Go。这是它的最小形式:package mainimport (    "io"    "net/http")func serve(w http.ResponseWriter, r *http.Request) {    text := "HTTP/1.1 200 OK\r\n" +    "Content-Type: text/html\r\n" +     "Host: localhost:1234\r\n" +     "Connection: close\r\n" +     "\r\n" +     "<!doctype html>\r\n" +     "<html>...</html>\r\n"    // Greet the user, ignoring their request.    io.WriteString(w, text)}func main() {    http.HandleFunc("/", serve)    http.ListenAndServe(":1234", nil)}当客户端连接到localhost:1234. 但出于某种原因,我的浏览器根据需要将输出显示为文本而不是 HTML。我究竟做错了什么?
查看完整描述

2 回答

?
呼唤远方

TA贡献1856条经验 获得超11个赞

如果您将在任何 chrome 检查器替代品中打开您的页面,您将看到它具有:

Content-Type:text/plain; charset=utf-8

这告诉您的浏览器如何解释它。您可以发送指定内容类型的附加标头:w.Header().Set("Content-Type", "text/html")或者只是删除您GET ...留下的所有内容:

text := "<h1>page</h1><span>page2</span>"


查看完整回答
反对 回复 2021-11-22
?
qq_遁去的一_1

TA贡献1725条经验 获得超7个赞

在编写响应之前,您需要在 中设置正确的Content-Type标头ResponseWriter。您不需要发送 HTTP 标头,因为它是在第一次调用时隐式发送的Write,或者通过 显式发送WriterHeader

w.Header().Set("Content-Type", "text/html; charset=utf-8")


查看完整回答
反对 回复 2021-11-22
  • 2 回答
  • 0 关注
  • 132 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信