「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > GOのGETリクエストにクエリストリングパラメーターを効率的に追加する方法は?

GOのGETリクエストにクエリストリングパラメーターを効率的に追加する方法は?

2025-02-26に投稿されました
ブラウズ:630

How to Efficiently Add Querystring Parameters to Go's GET Requests?

goのget requests

in goのquerystringパラメーター、http.clientを使用してquerystringパラメーターを使用してget requestsを送信することができます。ただし、このタスクは、表示されるほど簡単ではない場合があります。その値のタイプは、クエリストリングを構築するための便利なメカニズムを提供します。次の例を考えてみましょう:

インポート( 「FMT」 "ログ" 「net/http」 「OS」 「ネット/URL」 )) func main(){ //初期URLを使用して新しいリクエストオブジェクトを作成します。 req、err:= http.newRequest( "get"、 "http://api.themoviedb.org/3/tv/popular"、nil) err!= nil { log.print(err) os.exit(1) } //リクエストURLから既存のクエリパラメーターを取得します。 Q:= req.url.Query() //「Q」マップにクエリストリングパラメーターを追加します。 Q.Add( "api_key"、 "key_from_environment_or_flag") Q.Add( "Another_thing"、 "foo&bar") //更新された `Q`マップを生のクエリストリングにエンコードし、リクエストに設定します。 req.url.rawquery = q.encode() //デバッグ目的でクエリストリングで最終URLを取得します。 fmt.println(req.url.string()) //出力: // http://api.themoviedb.org/3/tv/popular?another_thing=foo&bar&api_key = key_from_environment_or_flag }

import (
    "fmt"
    "log"
    "net/http"
    "os"
    "net/url"
)

func main() {
    // Create a new request object with an initial URL.
    req, err := http.NewRequest("GET", "http://api.themoviedb.org/3/tv/popular", nil)
    if err != nil {
        log.Print(err)
        os.Exit(1)
    }

    // Get the existing query parameters from the request URL.
    q := req.URL.Query()

    // Add your querystring parameters to the `q` map.
    q.Add("api_key", "key_from_environment_or_flag")
    q.Add("another_thing", "foo & bar")

    // Encode the updated `q` map into a raw querystring and set it in the request.
    req.URL.RawQuery = q.Encode()

    // Retrieve the final URL with the querystring for debugging purposes.
    fmt.Println(req.URL.String())
    // Output:
    // http://api.themoviedb.org/3/tv/popular?another_thing=foo & bar&api_key=key_from_environment_or_flag
}
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3