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 サイトの他の関連記事を参照してください。