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

我只是在 Golang 中接近 webapps。


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


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 在网络浏览器中工作,而不仅仅是使用命令行 curl ?期待您的帮助。马可


湖上湖
浏览 93回答 1
1回答

慕姐8265434

你的服务器监听的ip地址是localhost,所以它只处理请求到localhost。你可以尝试curl http://111.111.1.1:8080/,你也会失败。如果你想从局域网或任何其他 IP 访问你的服务器,你应该设置CONN_HOST = "111.111.1.1"。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go