Heim >Backend-Entwicklung >Golang >„Hallo Welt' im HTTP-Stil
Implementieren Sie eine „Hello World“-Anwendung in einer beliebigen Programmiersprache Ihrer Wahl.
Die Anwendung ist eine CLI-Anwendung. Zunächst wird ein HTTP-Server auf „localhost:8000“ gestartet. Der Server sollte auf jeder Route mit einer Textantwort (Inhaltstyp „text/plain“) und dem Antwortcode 200 antworten. Wenn der HTTP-Dienst bereit ist, sendet die Anwendung eine GET-Anfrage an ihren HTTP-Server, liest die Antwort („Hello World“) und gibt die Antwort auf der Standardausgabe aus. Schließlich fährt die Anwendung den HTTP-Server herunter und existiert.
Die Anwendung kann mit Curl http://localhost:8000 getestet werden.
package main import ( "fmt" "io" "log" "net/http" ) func handler(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, "Hello, World!") } func main() { http.HandleFunc("/", handler) go func() { err := http.ListenAndServe(":8000", nil) if err != nil { log.Fatalf("http.ListenAndServe failed: %v", err) } }() r, err := http.Get("http://localhost:8000/") if err != nil { log.Fatalf("http.Get failed: %v", err) } defer r.Body.Close() t, err := io.ReadAll(r.Body) if err != nil { log.Fatalf("io.ReadAll failed: %v", err) } fmt.Println(string(t)) }
package main import ( "fmt" "io" "log/slog" "net/http" "os" ) func handler(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, "Hello, World!") } func configureLogging() { programLevel := new(slog.LevelVar) logger := slog.New(slog.NewTextHandler(os.Stdout, &slog.HandlerOptions{Level: programLevel})) slog.SetDefault(logger) if os.Getenv("DEBUG") != "" { programLevel.Set(slog.LevelDebug) } } func main() { configureLogging() http.HandleFunc("/", handler) addr := "localhost:8000" server := &http.Server{Addr: addr} done := make(chan struct{}) go func(done chan<- struct{}) { slog.Debug("server.ListenAndServe", "addr", addr) err := server.ListenAndServe() if err != nil { slog.Debug("server.ListenAndServe", "error", err) } close(done) }(done) r, err := http.Get("http://" + addr) if err != nil { slog.Error("http.Get failed", "error", err) return } defer r.Body.Close() t, err := io.ReadAll(r.Body) if err != nil { slog.Error("io.ReadAll failed", "error", err) return } fmt.Println(string(t)) err = server.Shutdown(nil) if err != nil { slog.Error("server.Shutdown failed", "error", err) return } <-done }
import process from "node:process"; Bun.serve({ fetch: () => new Response("Hello World!"), port: 8000 }); console.log(await (await fetch("http://localhost:8000/")).text()); process.exit();
Deno.serve( { port: 8000, onListen: () => {} }, () => new Response("Hello World!") ); console.log(await(await fetch("http://localhost:8000/")).text()); Deno.exit();
Das obige ist der detaillierte Inhalt von„Hallo Welt' im HTTP-Stil. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!