Go は、効率的で信頼性の高い同時実行ネットワーク アプリケーションの作成に非常に適したオープン ソース プログラミング言語です。 Go は、その優れたパフォーマンスと書きやすさにより、多くのアプリケーションで選ばれるプログラミング言語となっています。この記事では、Go を使用して HTTP リクエストを送信する方法について説明します。
- 最初に net/http パッケージを導入する
Go で HTTP リクエストを送信するための最初のステップは、net/http パッケージを導入することです。 HTTP クライアントやサーバーの作成など、多くの機能を提供します。
import "net/http"
- HTTP クライアントの作成
HTTP クライアントを作成するには、http.Client 構造を使用する必要があります。以下を使用して作成できます:
client := &http.Client{}
クライアントには、変更できるオプションも多数あります。たとえば、タイムアウトを設定したり、プロキシ サーバーを使用したりできます。以下にタイムアウトとプロキシ サーバーを使用した例を示します。
timeout := time.Duration(5 * time.Second)
transport := &http.Transport{
Proxy: http.ProxyURL(proxyUrl),
}
client := &http.Client{
Timeout: timeout, Transport: transport,
}
プロキシ サーバーはオプションであることに注意してください。プロキシ サーバーを使用する必要がない場合は、空のプロキシ URL を直接使用できます:
proxyUrl, err := url.Parse("")
- Send HTTP GET request
HTTP クライアントを作成したので、リクエストの送信を開始できます。最も単純なリクエストは HTTP GET リクエストです。Get 関数を使用して GET リクエストを送信します。
応答、エラー := client.Get("https://www.example.com/path/to/resource")
func main() {
resp, err := http.Get("https://www.example.com/path/to/resource") if err != nil { // handle error } defer resp.Body.Close() body, err := ioutil.ReadAll(resp.Body) if err != nil { // handle error } fmt.Println(string(body))
}
リクエストが成功すると、サーバーは応答を返します。レスポンスのステータスコードやレスポンスボディなどの内容をレスポンスから読み取ることができます。注: 応答本文を読み取って応答本文のリソースを解放した後、 resp.Body.Close() メソッドを呼び出す必要があります。
- HTTP POST リクエストの送信
GET リクエストに加えて、HTTP POST リクエストも送信できます。 POST リクエストは通常、データをサーバーに送信するために使用されます。 Post 関数を使用して、次のように POST リクエストを作成できます:
values := map[string]string{"username": "Administrator", "password": "Password"}
jsonValue , _ := json.Marshal(values)
url := "http://example.com/login"
req, err := http.NewRequest("POST", url, bytes.NewBuffer( jsonValue ))
req.Header.Set("Content-Type", "application/json")
func main() {
values := map[string]string{"username": "管理员", "password": "密码"} jsonValue, _ := json.Marshal(values) resp, err := http.Post("http://example.com/login", "application/json", bytes.NewBuffer(jsonValue)) if err != nil { // handle error } defer resp.Body.Close() body, err := ioutil.ReadAll(resp.Body) if err != nil { // handle error } fmt.Println(string(body))
}
上記コードでは、NewRequest 関数を使用して POST リクエストを作成します。リクエストの本文を bytes.NewBuffer 関数に渡します。ここで、本文は JSON 形式を使用してエンコードされます。次に、Content-Type ヘッダーを「application/json」に設定して、サーバーがリクエストの本文が JSON 形式であることを認識できるようにします。
- 他のタイプの HTTP リクエストの送信
Go では、PUT、DELETE、PATCH、OPTIONS、HEAD などの他のタイプの HTTP リクエストを送信できます。これらのリクエストを送信するには、http.NewRequest 関数を使用できます。 PUT リクエストを使用して JSON ファイルを送信する例を次に示します。
values := map[string]string{"name": "John Doe", "age": "29"}
jsonValue, _ := json.Marshal(values)
req, err := http.NewRequest("PUT", "http://example.com/users/123", bytes.NewBuffer(jsonValue))
req.Header.Set("Content-Type", "application/json")
func main() {
values := map[string]string{"name": "John Doe", "age": "29"} jsonValue, _ := json.Marshal(values) req, err := http.NewRequest("PUT", "http://example.com/users/123", bytes.NewBuffer(jsonValue)) if err != nil { // handle error } req.Header.Set("Content-Type", "application/json") client := &http.Client{} resp, err := client.Do(req) if err != nil { // handle error } defer resp.Body.Close() body, err := ioutil.ReadAll(resp.Body) if err != nil { // handle error } fmt.Println(string(body))
}
DELETE、PATCH を送信するには、OPTIONS および HEAD リクエストの場合は、http.NewRequest 関数の最初のパラメータを関連する HTTP メソッドに変更するだけです。たとえば、DELETE リクエストを送信するには、最初のパラメータを「DELETE」に変更します。
- 結論
この記事では、Go を使用して HTTP リクエストを送信する方法を紹介しました。 HTTP クライアントを作成し、HTTP GET リクエストと POST リクエストをサーバーに送信しました。 PUT、DELETE、PATCH、OPTIONS、HEAD など、他のタイプの HTTP リクエストを送信する方法についても説明しました。
実際の開発では、通常、さらに多くのオプションや機能が必要になります。これは、http.Client 構造のさまざまなプロパティを設定することで実現できます。これらのメソッドを使用すると、Go で HTTP リクエストを簡単に送信し、応答を処理できます。 Web アプリケーション、分散システム、バックエンド サービス、その他のネットワーク アプリケーションを構築する場合でも、Go を使用すると簡単に作業を完了できます。
以上がgolangがリクエストを送信するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

GoroutinesAreSareSareSareSormethodSthaturncurlyntingo、Enableing and LightweightConcurrency.1)theyRuntimeSimeSingMultiplexing、SountyStorunonFeweroSthReads.2)ゴルチンズを失ったことを許可します

initistoistoInitializevariables、setupconutupurations、orforformndexedarysetupbe foreThemainfunctionexecutes.useinitby:1)inginginyourcodeTorunautorunaintalunain、2)KeepingItshortandpocusedonsimpletasks、3)ConsididiriveSusinginsingingingingingingingingingingingingingingingingingingingingingingsingpltassksを使用すると、

go interfacesaremethodsignaturesetsetsattypesmustimplement、unableingpolymorphism withintinheritance forcleaner、modularcode.theyareimplictilistifisisfiestified、houseforfflexibleapisanddeaupling、busrecarefulusoavoidoidoimoidimeerrororsypertety。

Goで回復()関数を使用して、パニックから回復します。特定の方法は次のとおりです。1)回復()を使用して、延期関数でパニックをキャプチャして、プログラムのクラッシュを避けます。 2)デバッグの詳細なエラー情報を記録します。 3)特定の状況に基づいてプログラムの実行を再開するかどうかを決定します。 4)パフォーマンスに影響を及ぼさないように注意して使用します。

この記事では、弦の操作にGOの「文字列」パッケージを使用し、効率を高め、ユニコードを効果的に処理するための一般的な機能とベストプラクティスの詳細を説明します。

記事の詳細は、暗号化操作のためのGoの「暗号」パッケージ、安全な実装のための主要な生成、管理、およびベストプラクティスについて議論するためのパッケージ。

この記事では、現在の時間の取得、特定の時間の作成、文字列の解析、経過時間の測定など、日付、時間、およびタイムゾーンを処理するためのGoの「時間」パッケージの使用について詳しく説明しています。

記事では、可変検査と変更のためにGOの「反射」パッケージを使用して、方法とパフォーマンスの考慮事項を強調するために説明します。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

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

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

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

ホットトピック









