Керлинг http-сервер в порядке, но с браузером не работает

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

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

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 работать в веб-браузере, а не только с завитком из командной строки? Ждем вашей помощи. Марко

Когда вы обнаружите, что что-то работает с одним клиентом, а не с другим, первое, что нужно сделать, — это трижды проверить, одинаковы ли запросы, которые вы отправляете на каждом клиенте. В данном случае их явно нет.

Adrian 25.01.2019 17:43
Создание API ввода вопросов на разных языках программирования (Python, PHP, Go и Node.js)
Создание API ввода вопросов на разных языках программирования (Python, PHP, Go и Node.js)
API ввода вопросов - это полезный инструмент для интеграции моделей машинного обучения, таких как ChatGPT, в приложения, требующие обработки...
2
1
105
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

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

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

Привет Билли. Ставим const (CONN_HOST = "111.111.1.1:" CONN_PORT = "8080") go run http-server.go 25.01.2019 16:19:11 ошибка при запуске http сервера: слушать tcp: адрес 111.111.1.1::8080: слишком много двоеточий в статусе выхода адреса 1

user2315094 25.01.2019 17:19

Я допустил ошибку. const (CONN_HOST = "111.111.1.1" CONN_PORT = "8080") Сейчас. это работает... большое спасибо!!!!

user2315094 25.01.2019 17:22

Другие вопросы по теме