Maison > développement back-end > Golang > Grequest s'inspire de la bibliothèque Request pour Python pour GO

Grequest s'inspire de la bibliothèque Request pour Python pour GO

DDD
Libérer: 2025-01-07 07:18:44
original
467 Les gens l'ont consulté

Grequest is inspired by the Request library for Python for GO

Package golang simple et léger pour les requêtes http. basé sur un réseau puissant/http

Grequest s'inspire de la librairie Request pour Python et Guzzle en PHP, le but est de réaliser une librairie simple et pratique pour faire des requêtes http en go

La bibliothèque dispose d'une API flexible avec des méthodes qui renvoient un pointeur vers la structure de la bibliothèque, ce qui vous permet de décrire de manière déclarative une requête à l'aide d'une chaîne de méthodes.

Installation

go get github.com/lib4u/grequest
Copier après la connexion

Usage

Obtenir une demande simple et obtenir une réponse sous forme de chaîne

req := app.Get("https://jsonplaceholder.typicode.com/todos/1").Do()
    response := req.Body().GetStrings()
    fmt.Println(response)
Copier après la connexion

Obtenez une réponse et écrivez-la dans une structure json

type AutoGenerated struct {
    UserID    int    `json:"userId"`
    ID        int    `json:"id"`
    Title     string `json:"title"`
    Completed bool   `json:"completed"`
}
...
   var myJsonResponse AutoGenerated
    req := app.Get("https://jsonplaceholder.typicode.com/todos/1").Do()
    err := req.Body().GetWithJsonStruct(&myJsonResponse)
    if err != nil {
        fmt.Println("do ..")
    }
    fmt.Println(myJsonResponse.Title)
Copier après la connexion

Demande de publication simple avec le corps de la charge utile JSON et obtenez l'état de la réponse

data := LoginRequest{
        Username: "example",
        Password: "12345",
    }
    req := app.Post("https://example.site/login").Body().SetJson(data).Do()
    fmt.Println(req.Status().GetCode())
Copier après la connexion

Enregistrer simplement le fichier à partir de la réponse

// file will saved as ../files/image.png
app.Get("https://example.com/image.png").Do().Body().SaveFile()
//OR
app.Get("https://example.com/image.png").Do().Body().Path("/user/files").SaveFile()
//OR 
app.Get("https://example.com/image.png").Do().Body().ToFile("path/savedimage.png")
Copier après la connexion

Envoi du formulaire avec fichiers et champs de texte et définition de l'en-tête

req := app.Post("https://example.site/form/")
    req.Header().Set("Client", "number_1")
    form := req.FormData().WithMultipart()
    form.AddField("first_name", "John")
    form.AddField("last_name", "Doe")
    form.AddFile("photo", "my_photo.png")
    form.AddFile("documents", "example.txt")
    form.AddFile("documents", "example2.txt")
    form.Push()
    req.Do()
    .....
Copier après la connexion

Demande avec authentification

//With basic auth
req := app.Post("https://example.site/secret)
    req.Header().Set("Client", "number_1")
    req.Auth().SetBasic("user", "password")
    req.Do()
    ...
    //Sets bearer token
    req := app.Post("https://example.site/secret)
    req.Header().Set("Client", "number_1")
    req.Auth().SetBearer("myToken")
    req.Do()
Copier après la connexion

Travailler avec des cookies

//Save cookie to file 
//By default this saved in  cookies/example.site/cookies.json
req := app.Post("https://example.site/cookies")
    req.Cookie().Save()
    ...
    // Load saved cookies form cookies/example.site/cookies.json
    reqWithCookie := app.Post("https://example.site/cookies")
    reqWithCookie.Cookie().Load()
    reqWithCookie.Do()
    ...
Copier après la connexion

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!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal