Heim >Backend-Entwicklung >Golang >Grequest ist von der Request-Bibliothek für Python für GO inspiriert

Grequest ist von der Request-Bibliothek für Python für GO inspiriert

DDD
DDDOriginal
2025-01-07 07:18:44538Durchsuche

Grequest is inspired by the Request library for Python for GO

Einfaches und leichtes Golang-Paket für http-Anfragen. basierend auf leistungsstarkem Netz/http

Grequest ist von der Request-Bibliothek für Python und Guzzle in PHP inspiriert. Ziel ist es, eine einfache und praktische Bibliothek zum Erstellen von http-Anfragen in go zu erstellen

Die Bibliothek verfügt über eine flexible API mit Methoden, die einen Zeiger auf die Bibliotheksstruktur zurückgeben, sodass Sie eine Anfrage mithilfe einer Methodenkette deklarativ beschreiben können.

Installation

go get github.com/lib4u/grequest

Verwendung

Einfache Get-Anfrage und Get-String-Antwort

req := app.Get("https://jsonplaceholder.typicode.com/todos/1").Do()
    response := req.Body().GetStrings()
    fmt.Println(response)

Erhalten Sie eine Antwort und schreiben Sie sie in eine JSON-Struktur

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)

Einfache Post-Anfrage mit JSON-Nutzlasttext und Status der Antwort abrufen

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

Einfaches Speichern der Datei aus der Antwort

// 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")

Formular mit Dateien und Textfeldern senden und Kopfzeile festlegen

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()
    .....

Anfrage mit Authentifizierung

//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()

Mit Cookies arbeiten

//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()
    ...

Das obige ist der detaillierte Inhalt vonGrequest ist von der Request-Bibliothek für Python für GO inspiriert. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn