Golang では、net/http
パッケージの Get
メソッドを使用して、サーバーに GET リクエストを送信し、リソースを取得できます。 GET リクエストは通常、ファイルのダウンロードやデータの取得など、既存のリソースを取得するために使用されます。
以下は、Golang を使用して GET リクエストを送信する方法を示す簡単な例です:
package main import ( "fmt" "io/ioutil" "net/http" ) func main() { // 发送GET请求获取百度首页 resp, err := http.Get("https://www.baidu.com") if err != nil { fmt.Println("请求错误", err) return } // 记得在函数结束时关闭响应体 defer resp.Body.Close() // 读取响应体内容 body, err := ioutil.ReadAll(resp.Body) if err != nil { fmt.Println("读取响应体错误", err) return } // 将响应体内容打印出来 fmt.Println(string(body)) }
コードでは、http.Get
を使用して GET リクエストを送信します。最初のパラメータは取得するリソースのアドレスで、返される結果は、応答ヘッダー、応答ステータス、応答本文などの情報を含む Response
オブジェクトです。要求されたアドレスが間違っている、ネットワーク接続がタイムアウトするなどのエラーが発生した場合、http.Get
は空ではないエラー値 err
を返します。
次に、ioutil.ReadAll
メソッドを使用して、応答本文の内容を読み取り、出力します。応答オブジェクトの Body
フィールドは、占有しているリソースを解放するためにプログラムの最後に閉じる必要があることに注意してください。
http.Get
メソッドの使用に加えて、http.NewRequest
メソッドを使用して Request
オブジェクトを手動で構築することもできます。リクエスト ヘッダー、リクエスト パラメーター、その他の情報を設定し、http.DefaultClient.Do
メソッドを使用してリクエストを送信します。コード例は次のとおりです。
package main import ( "fmt" "net/http" "net/url" "strings" ) func main() { // 手动构造GET请求 values := url.Values{} values.Add("key", "value") apiUrl := "http://api.example.com?" + values.Encode() req, err := http.NewRequest("GET", apiUrl, nil) if err != nil { fmt.Println("请求错误", err) return } // 设置请求头信息 req.Header.Add("Accept-Encoding", "gzip, deflate, br") req.Header.Add("Connection", "keep-alive") req.Header.Add("Cookie", "user=abc; password=123") req.Header.Add("Accept-Language", "zh-CN,zh;q=0.9,en;q=0.8") req.Header.Add("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3") // 发送请求 client := http.DefaultClient resp, err := client.Do(req) if err != nil { fmt.Println("请求错误", err) return } defer resp.Body.Close() // 读取响应体 bodyBytes, err := ioutil.ReadAll(resp.Body) if err != nil { fmt.Println("读取响应体错误", err) return } bodyString := string(bodyBytes) fmt.Println(bodyString) }
この例では、GET リクエストを手動で構築し、url.Values
を使用してクエリ パラメータを設定し、http.NewRequet を使用します。
メソッドを使用して Request
オブジェクトを作成し、リクエスト ヘッダー フィールドを通じてリクエスト ヘッダー情報を設定します。次に、リクエスト オブジェクトを http.DefaultClient
に送信してリクエストし、ioutil.ReadAll
メソッドを使用して応答本文の内容を読み取ります。
http.Get
メソッドと http.NewRequest
メソッドの使用に加えて、サードパーティ ライブラリ gorequest
を使用して、 HTTP リクエストを構築して送信します。このライブラリは、リクエストヘッダー、リクエストパラメータ、JSON、ファイルアップロードなどを簡単に設定できる豊富なAPIを提供します。
以下は gorequest
の簡単な使用例です:
package main import ( "fmt" "github.com/parnurzeal/gorequest" ) func main() { // 使用gorequest构造GET请求 resp, body, err := gorequest.New().Get("https://www.baidu.com").End() if err != nil { fmt.Println("请求错误", err) return } fmt.Println(body) }
この例では、gorequest.New
メソッドを使用して新しいオブジェクトを要求し、Get
メソッドを使用して要求メソッドとアドレスを設定します。最後に、End
メソッドはリクエストを送信し、応答結果を返します。 gorequest
は、独自のニーズに応じてリクエストを柔軟に設定および送信するための便利なメソッドを多数提供します。
要約すると、Golang で GET リクエストを送信するのは非常に簡単です。 http.Get
メソッド、http.NewRequest
メソッド、またはサードパーティ ライブラリ gorequest
を使用してリクエストを送信し、応答ステータスと応答本文を取得できます。応答オブジェクトのコンテンツ内。同時に、さまざまなシナリオのニーズを満たすために、リクエスト ヘッダー、リクエスト パラメーター、その他の情報を手動で設定することもできます。
以上がgolangでリクエストを取得するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。