Golang でネットワーク リクエストを行う方法
Mar 30, 2023 am 10:04 AMGolang は、Web アプリケーションやネットワーク サービスの開発で広く使用されている効率的なプログラミング言語です。ネットワーク サービスでは、リクエストは非常に重要な部分です。この記事では、Golang で GET リクエストや POST リクエストなどのネットワーク リクエストを行う方法を紹介します。
- GET リクエスト
GET リクエストは、最も一般的に使用されるネットワーク リクエスト メソッドの 1 つです。サーバーからデータを取得するために使用され、通常は HTML、CSS、JavaScript などのファイルを取得するために使用されますが、API データを取得するために使用することもできます。 Golang では、標準ライブラリの net/http パッケージによって提供される Get メソッドを使用して、GET リクエストを簡単に作成できます。簡単な例を次に示します。
package main import ( "fmt" "io/ioutil" "net/http" ) func main() { resp, err := http.Get("https://www.example.com/") if err != nil { // 处理错误 return } defer resp.Body.Close() body, err := ioutil.ReadAll(resp.Body) if err != nil { // 处理错误 return } fmt.Println(string(body)) }
上記のコードでは、http.Get メソッドを使用して GET リクエストを https://www.example.com/ に送信し、サーバーの応答を読み取ります。エラーが発生した場合は特別な対応をさせていただきます。さらに、defer ステートメントを使用して、関数が返される前に応答本文が確実に閉じられるようにします。
- POST リクエスト
POST リクエストは、データをサーバーに送信するために使用され、通常はフォーム データまたは JSON データを API エンドポイントに送信します。 Golang では、http パッケージによって提供される Post メソッドを使用して、POST リクエストを簡単に行うことができます。簡単な例を次に示します。
package main import ( "fmt" "io/ioutil" "net/http" "strings" ) func main() { url := "https://www.example.com/api" data := strings.NewReader(`{"name": "John", "age": 30}`) resp, err := http.Post(url, "application/json", data) if err != nil { // 处理错误 return } defer resp.Body.Close() body, err := ioutil.ReadAll(resp.Body) if err != nil { // 处理错误 return } fmt.Println(string(body)) }
上記のコードでは、http.Post メソッドを使用して https://www.example.com/api に POST リクエストを送信し、JSON データを送信します。 strings.NewReader メソッドを使用して JSON データをデータ ストリームに変換し、コンテンツ タイプを application/json に設定します。次に、サーバーの応答を読み取り、コンソールに出力します。
- カスタム リクエスト
HTTP リクエスト ヘッダーまたはパラメータをカスタマイズする必要がある場合があります。この場合、http.NewRequest メソッドを使用してカスタム リクエストを作成できます。簡単な例を次に示します。
package main import ( "fmt" "io/ioutil" "net/http" ) func main() { url := "https://www.example.com/api" req, err := http.NewRequest("GET", url, nil) if err != nil { // 处理错误 return } 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.36") client := http.Client{} resp, err := client.Do(req) if err != nil { // 处理错误 return } defer resp.Body.Close() body, err := ioutil.ReadAll(resp.Body) if err != nil { // 处理错误 return } fmt.Println(string(body)) }
上記のコードでは、http.NewRequest メソッドを使用して GET リクエストを作成し、カスタム User-Agent ヘッダーを追加します。リクエストを作成した後、http.Client{} 構造の Do メソッドを使用してリクエストを送信し、レスポンスを取得します。
概要
この記事では、Golang で GET および POST リクエストを作成する方法と、HTTP リクエストをカスタマイズする方法を紹介しました。ネットワーク サービスの効率と信頼性を高めるには、上記の方法を使用してください。
以上がGolang でネットワーク リクエストを行う方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

人気の記事

人気の記事

ホットな記事タグ

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Go Language Packのインポート:アンダースコアとアンダースコアなしの違いは何ですか?

GOでテスト用のモックオブジェクトとスタブを書くにはどうすればよいですか?

トレースツールを使用して、GOアプリケーションの実行フローを理解するにはどうすればよいですか?

MySQLクエリ結果リストをGO言語のカスタム構造スライスに変換する方法は?

GOのジェネリックのカスタムタイプ制約を定義するにはどうすればよいですか?
