Home >Backend Development >Golang >Use the net/http.HandlerFunc function to convert the function into a processor object that implements the http.Handler interface

Use the net/http.HandlerFunc function to convert the function into a processor object that implements the http.Handler interface

王林
王林Original
2023-07-24 17:25:101199browse

Use the net/http.HandlerFunc function to convert the function into a processor object that implements the http.Handler interface

In the net/http package of the Go language, there is a very practical function called http.HandlerFunc . This function can convert ordinary functions into processor objects that implement the http.Handler interface, allowing us to process HTTP requests more conveniently.

First, let’s take a look at the definition of the http.Handler interface:

type Handler interface {
    ServeHTTP(ResponseWriter, *Request)
}

The http.HandlerFunc function is defined as follows:

func HandlerFunc(f func(ResponseWriter, *Request))

Through this function, we can accept an The two-argument function f is converted into a handler object that implements the http.Handler interface. Next, we will illustrate how to use the http.HandlerFunc function through an example.

Suppose we have a processor function helloHandler that handles HTTP requests and returns a simple string "Hello, World!". The definition of the processor function is as follows:

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

Now we hope to convert this function into a processor object that implements the http.Handler interface so that it can be registered as a route processor.

We can use the http.HandlerFunc function to achieve this conversion. The code is as follows:

package main

import (
    "fmt"
    "net/http"
)

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

func main() {
    http.Handle("/hello", http.HandlerFunc(helloHandler))
    http.ListenAndServe(":8080", nil)
}

In the above code, we use the http.HandleFunc function to convert the helloHandler function into an implementation of http. The handler object of the Handler interface and register it as the route processor with the path "/hello".

Finally, we started an HTTP server through the http.ListenAndServe function and listened to the local port 8080.

When we visit "http://localhost:8080/hello", the server will call the helloHandler function and send the returned string "Hello, World!" to the client.

By using the http.HandlerFunc function, we can easily convert ordinary functions into processor objects of the http.Handler interface, allowing us to process HTTP requests more flexibly.

To summarize, this article introduces how to use the net/http.HandlerFunc function to convert an ordinary function into a processor object that implements the http.Handler interface, and illustrates how to use this function to handle HTTP through a sample code ask. Hope this article is helpful to you!

The above is the detailed content of Use the net/http.HandlerFunc function to convert the function into a processor object that implements the http.Handler interface. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn