Golang est un langage de programmation émergent rapidement qui a également attiré beaucoup d'attention dans la programmation réseau. Dans Golang, la programmation réseau peut être facilement effectuée en utilisant le package de requête http. Cet article présentera le package de requêtes http de Golang, y compris la connaissance de l'envoi de requêtes http, de la réception de réponses http, etc.
Dans Golang, utilisez la fonction http.NewRequest() pour créer une requête http. Les paramètres de cette fonction incluent la méthode de requête, l'URL, le corps de la requête, etc.
func NewRequest(method, url string, body io.Reader) (*Request, error)
Exemple de code :
package main import ( "bytes" "fmt" "io/ioutil" "net/http" ) func main() { url := "http://example.com" jsonStr := []byte(`{"name":"John"}`) req, err := http.NewRequest("POST", url, bytes.NewBuffer(jsonStr)) 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, _ := ioutil.ReadAll(resp.Body) fmt.Println("response Body:", string(body)) }
Dans le code ci-dessus, nous utilisons la fonction http.NewRequest() pour créer une requête POST et définir le Content-Type de l'en-tête de la requête. Vous pouvez utiliser http.Client{} pour envoyer une requête et lire le corps de la réponse via la fonction ReadAll() du package ioutil.
Dans Golang, la structure http.Response est utilisée pour représenter la réponse http. La structure comprend le code d'état de la réponse, l'en-tête de la réponse, le corps de la réponse et d'autres informations.
type Response struct { Status string StatusCode int Proto string ProtoMajor int ProtoMinor int Header Header Body io.ReadCloser ContentLength int64 TransferEncoding []string Close bool Uncompressed bool Trailer Header Request *Request TLS *tls.ConnectionState Cancel <-chan struct{} }
Exemple de code :
package main import ( "fmt" "io/ioutil" "net/http" ) func main() { resp, err := http.Get("http://example.com") if err != nil { panic(err) } defer resp.Body.Close() fmt.Println("response Status:", resp.Status) fmt.Println("response Headers:", resp.Header) body, _ := ioutil.ReadAll(resp.Body) fmt.Println("response Body:", string(body)) }
Dans le code ci-dessus, nous utilisons la fonction http.Get() pour envoyer une requête GET et obtenons le code d'état de la réponse, l'en-tête de la réponse et le corps de la réponse via resp.Status, resp.Header , et resp.Body respectivement et affichez-le sous forme de chaîne.
Résumé
Le package de requête http de Golang fournit une interface de programmation réseau très pratique, rendant la programmation réseau simple et efficace. Nous pouvons créer des requêtes http via des fonctions telles que http.NewRequest() et http.Get(), et obtenir des informations de réponse http via la structure http.Response. La maîtrise du package de requêtes http de Golang peut améliorer la réutilisabilité et la lisibilité du code lors de la mise en œuvre de serveurs et de services Web.
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!