Golang Request Processing Guide
Golang is an efficient, concise, and highly concurrency programming language that is widely used in the fields of Web development and network programming. In network programming, handling HTTP requests is a crucial part. This article will introduce how to handle HTTP requests in Golang, including creating HTTP servers, processing GET and POST requests, parameter parsing, cookie operations, etc., and provide detailed code examples.
First, we need to create an HTTP server to receive requests. In Golang, you can use the ListenAndServe
method provided by the net/http
package to create a simple HTTP server. The code is as follows:
package main import ( "net/http" "fmt" ) func handler(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, "Hello, World!") } func main() { http.HandleFunc("/", handler) http.ListenAndServe(":8080", nil) }
In the above code, we Specify a request processing function handler
through the http.HandleFunc
method to handle requests for the root path ("/"). Then start an HTTP server listening on port 8080 through the http.ListenAndServe
method.
Next, let’s look at how to handle GET requests. GET requests can pass data through URL parameters, and we can obtain these parameters through the r.URL.Query()
method. The following is a sample code that handles GET requests:
func handler(w http.ResponseWriter, r *http.Request) { query := r.URL.Query() name := query.Get("name") fmt.Fprintf(w, "Hello, %s!", name) }
In the above code, we get the URL parameter named "name" through the query.Get
method and output it to Responding.
Similar to processing GET requests, processing POST requests is also very simple. We can parse the form data of the POST request through the r.ParseForm()
method. The following is a sample code that handles POST requests:
func handler(w http.ResponseWriter, r *http.Request) { r.ParseForm() name := r.Form.Get("name") fmt.Fprintf(w, "Hello, %s!", name) }
In the above code, we get the form data named "name" through the r.Form.Get
method and put it Output to the response.
In addition to obtaining URL parameters and form data, sometimes it is also necessary to process JSON data or request bodies in other formats. We can use the json.Unmarshal
method to parse JSON data. The following is a sample code for processing JSON data:
import ( "encoding/json" "io/ioutil" ) type Person struct { Name string `json:"name"` } func handler(w http.ResponseWriter, r *http.Request) { body, _ := ioutil.ReadAll(r.Body) var person Person json.Unmarshal(body, &person) fmt.Fprintf(w, "Hello, %s!", person.Name) }
In the above example, we define a Person
structure to parse JSON data containing the "name" field and output it to Responding.
Finally, let’s take a look at how to perform Cookie operations. In Golang, you can use the http.SetCookie
method to set a cookie and the r.Cookie
method to get a cookie. The following is a sample code for setting and getting Cookie:
func handler(w http.ResponseWriter, r *http.Request) { cookie := &http.Cookie{ Name: "username", Value: "john_doe", } http.SetCookie(w, cookie) username, err := r.Cookie("username") if err != nil { fmt.Fprintf(w, "Error getting cookie") } else { fmt.Fprintf(w, "Hello, %s!", username.Value) } }
In the above code, we first set a Cookie named "username" and then obtain it through the r.Cookie
method The value of this cookie is output to the response.
Through the above sample code, we have learned how to handle HTTP requests in Golang, including creating HTTP servers, processing GET and POST requests, parameter parsing, cookie operations, etc. I hope this article is helpful to you, and you are welcome to continue learning and exploring more usage and features of Golang.
The above is the detailed content of Golang request processing guide. For more information, please follow other related articles on the PHP Chinese website!