ホームページ > バックエンド開発 > Golang > Grequest は、GO 用の Python の Request ライブラリからインスピレーションを受けています。

Grequest は、GO 用の Python の Request ライブラリからインスピレーションを受けています。

DDD
リリース: 2025-01-07 07:18:44
オリジナル
466 人が閲覧しました

Grequest is inspired by the Request library for Python for GO

http リクエスト用のシンプルで軽量な golang パッケージ。強力な net/http

に基づいています

Grequest は、PHP の Python および Guzzle の Request ライブラリからインスピレーションを受けており、目標は、Go で http リクエストを作成するためのシンプルで便利なライブラリを作成することです

ライブラリには、ライブラリ構造へのポインタを返すメソッドを備えた柔軟な API があり、メソッドのチェーンを使用してリクエストを宣言的に記述することができます。

インストール

go get github.com/lib4u/grequest
ログイン後にコピー

使用法

単純な get リクエストと get 文字列レスポンス

req := app.Get("https://jsonplaceholder.typicode.com/todos/1").Do()
    response := req.Body().GetStrings()
    fmt.Println(response)
ログイン後にコピー

応答を取得し、それを 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)
ログイン後にコピー

JSON ペイロード本文を使用した単純な post リクエストと応答のステータスの取得

data := LoginRequest{
        Username: "example",
        Password: "12345",
    }
    req := app.Post("https://example.site/login").Body().SetJson(data).Do()
    fmt.Println(req.Status().GetCode())
ログイン後にコピー

応答からファイルを保存するだけです

// 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")
ログイン後にコピー

ファイルとテキストフィールドを含むフォームを送信し、ヘッダーを設定します

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()
    .....
ログイン後にコピー

認証付きリクエスト

//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()
ログイン後にコピー

Cookie を使用する

//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()
    ...
ログイン後にコピー

以上がGrequest は、GO 用の Python の Request ライブラリからインスピレーションを受けています。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート