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
Freigeben: 2025-01-07 07:18:44
Original
467 Leute haben es durchsucht

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
Nach dem Login kopieren

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)
Nach dem Login kopieren

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)
Nach dem Login kopieren

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())
Nach dem Login kopieren

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")
Nach dem Login kopieren

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()
    .....
Nach dem Login kopieren

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()
Nach dem Login kopieren

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()
    ...
Nach dem Login kopieren

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!

Quelle:dev.to
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage