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.
go get github.com/lib4u/grequest
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)
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)
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())
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")
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() .....
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()
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() ...
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!