卷曲 http 服务器没问题,但浏览器不起作用

curling http-server is ok but with the browser doesn't work

我刚开始接触 Golang 中的网络应用程序。

这是作为起点的简单代码:

package main

import (
        "fmt"
        "log"
        "net/http"
)

const (
        CONN_HOST = "localhost"
        CONN_PORT = "8080"
)

func helloWorld(w http.ResponseWriter, r *http.Request) {
        fmt.Fprintf(w, "Hello World!")
}

func main() {
        http.HandleFunc("/", helloWorld)
        err := http.ListenAndServe(CONN_HOST+":"+CONN_PORT, nil)
        if err != nil {
                log.Fatal("error starting http server : ", err)
                return
        }
}

正在执行:

go run http-server.go

curl http://localhost:8080/
Hello World!

但是在网络浏览器中打开时的 ip 地址:

http://111.111.1.1:8080/
connection didn't succeed

如果我替换这段代码:

        err := http.ListenAndServe(CONN_HOST+":"+CONN_PORT, nil)
        if err != nil {
                log.Fatal("error starting http server : ", err)
                return
        }

与 :

         log.Fatal(http.ListenAndServe(":8080", nil))

所以 main() 函数仅由这两行组成:

    func main() {
        http.HandleFunc("/", helloWorld)
    }

curl http://localhost:8080/
Hello World!

在网络浏览器中:

http://111.111.1.1:8080/

Hello World!

那么....如何使原始的简单 http-server.go 在 web 浏览器中工作,而不仅仅是使用命令行 curl? 期待您的帮助。 马可

你的服务器监听的ip是localhost,所以只处理了localhost.

的请求

你可以试试curl http://111.111.1.1:8080/,你也会失败

如果你想从局域网或任何其他IP访问你的服务器,你应该设置CONN_HOST = "111.111.1.1"。