керлинг http-сервер в порядке, но с браузером не работает - PullRequest
0 голосов
/ 25 января 2019

Я просто подхожу к веб-приложениям на Голанге.

Это простой код в качестве отправной точки:

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))

, поэтому основнойФункция () состоит только из этих двух строк:

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

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

А в веб-браузере:

http://111.111.1.1:8080/

Hello World!

Итак ... как сделать оригинальный простой http-сервер.go работает в веб-браузере, а не только с curl-строкой curl?Ждем вашей помощи.Marco

1 Ответ

0 голосов
/ 25 января 2019

IP-адрес, который прослушивал ваш сервер, localhost ,, поэтому он обрабатывал только запросы к localhost.

Вы можете попробовать curl http://111.111.1.1:8080/ , Вы тоже потерпите неудачу.

Если вы хотите получить доступ к вашему серверу с локальной сети или любого другого IP-адреса, вам следует установить CONN_HOST = "111.111.1.1"。

...