Home  >  Article  >  Backend Development  >  Golang request processing guide

Golang request processing guide

WBOY
WBOYOriginal
2024-02-28 12:42:031105browse

Golang request processing guide

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.

1. Create HTTP server

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.

2. Handling GET requests

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.

3. Processing POST requests

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.

4. Parameter parsing

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.

5. Cookie operation

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!

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