Maison >développement back-end >Golang >Comment utiliser la bibliothèque standard pour lancer des requêtes HTTP en langage Go
Le langage Go (Golang) est un langage de programmation efficace développé par Google, particulièrement adapté à la programmation réseau et à la programmation système. Dans les applications Web, l'envoi de requêtes HTTP est une opération très courante. Cet article explique comment utiliser la bibliothèque standard pour lancer des requêtes HTTP dans le langage Go.
Avant de lancer une requête HTTP, vous devez d'abord comprendre les différentes parties de la requête HTTP.
La requête HTTP se compose de trois parties : la ligne de requête, l'en-tête de la requête et le corps de la requête.
La ligne de requête contient la méthode demandée, l'URL et la version du protocole, par exemple :
GET /api/users HTTP/1.1
L'en-tête de la requête contient les métadonnées de la requête HTTP, par exemple :
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 Accept-Encoding: gzip, deflate Accept-Language: en-US,en;q=0.8
Le corps de la requête contient les données à soumettre par l'application , par exemple :
{"username":"admin","password":"123456"}
Ce qui suit est un exemple d'utilisation de la bibliothèque standard pour lancer une requête HTTP GET :
package main import ( "fmt" "io/ioutil" "net/http" ) func main() { resp, err := http.Get("https://www.example.com") if err != nil { panic(err) } defer resp.Body.Close() body, err := ioutil.ReadAll(resp.Body) if err != nil { panic(err) } fmt.Println(string(body)) }
Dans l'exemple ci-dessus, nous utilisons la fonction http.Get
pour lancer une requête HTTP GET. Cette fonction renvoie une structure de type http.Response
, qui contient différentes parties de la réponse HTTP. Nous utilisons la fonction ioutil.ReadAll
pour lire le contenu du corps de la réponse et l'afficher sur la console. http.Get
函数发起了一个HTTP GET请求。该函数返回一个http.Response
类型的结构体,其中包含了HTTP响应的各个部分。我们使用ioutil.ReadAll
函数读取响应体的内容,并将其输出到控制台。
除了HTTP GET请求,我们还可以使用标准库发起HTTP POST请求。下面是一个使用标准库发起HTTP POST请求的示例:
package main import ( "bytes" "fmt" "io/ioutil" "net/http" ) func main() { url := "http://www.example.com/api/login" data := []byte(`{"username":"admin","password":"123456"}`) req, err := http.NewRequest("POST", url, bytes.NewBuffer(data)) if err != nil { panic(err) } req.Header.Set("Content-Type", "application/json") client := &http.Client{} resp, err := client.Do(req) if err != nil { panic(err) } defer resp.Body.Close() body, err := ioutil.ReadAll(resp.Body) if err != nil { panic(err) } fmt.Println(string(body)) }
在上面的示例中,我们使用http.NewRequest
函数创建了一个HTTP请求。我们指定了请求的方法为POST,URL为http://www.example.com/api/login
,并将请求体设置为{"username":"admin","password":"123456"}
。我们还设置了请求头的Content-Type为application/json。最后,我们使用client.Do
方法执行HTTP POST请求,并读取响应体的内容。
除了标准库,我们还可以使用第三方库发起HTTP请求。下面是一个使用第三方库github.com/go-resty/resty
发起HTTP GET请求的示例:
package main import ( "fmt" "github.com/go-resty/resty/v2" ) func main() { client := resty.New() resp, err := client.R(). EnableTrace(). Get("https://www.example.com") if err != nil { panic(err) } fmt.Println(string(resp.Body())) }
在上面的示例中,我们使用了github.com/go-resty/resty
库提供的Get
方法发起HTTP GET请求。我们还使用了EnableTrace
Dans l'exemple ci-dessus, nous avons créé une requête HTTP en utilisant la fonction http.NewRequest
. Nous avons spécifié la méthode de requête comme POST, l'URL comme http://www.example.com/api/login
et défini le corps de la requête comme {"username": "admin", "mot de passe": "123456">
. Nous définissons également le Content-Type de l’en-tête de la requête sur application/json. Enfin, nous utilisons la méthode client.Do
pour effectuer une requête HTTP POST et lire le contenu du corps de la réponse.
github.com/go-resty/resty
pour lancer une requête HTTP GET : 🎜rrreee🎜Dans l'exemple ci-dessus, nous avons utilisé github.com /go - La méthode <code>Get
fournie par la bibliothèque resty/resty initie une requête HTTP GET. Nous avons également utilisé la méthode EnableTrace
pour imprimer les détails de la requête HTTP. 🎜🎜🎜🎜Conclusion🎜🎜🎜🎜Grâce à l'introduction de cet article, nous avons appris à utiliser la bibliothèque standard ou la bibliothèque tierce pour lancer des requêtes HTTP dans le langage Go. Comprendre la structure de base et l'utilisation des requêtes HTTP est très important pour développer des applications Web. Dans le développement réel, nous devons également prendre en compte des problèmes tels que la sécurité et les performances des requêtes HTTP. 🎜Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!