Go 言語 (Golang) は、Google によって開発された効率的なプログラミング言語で、特にネットワーク プログラミングやシステム プログラミングに適しています。 Web アプリケーションでは、HTTP リクエストの送信は非常に一般的な操作です。この記事では、標準ライブラリを使用して Go 言語で HTTP リクエストを開始する方法を紹介します。
HTTP リクエストを開始する前に、まず HTTP リクエストのさまざまな部分を理解する必要があります。
HTTP リクエストは、リクエスト行、リクエスト ヘッダー、リクエスト本文の 3 つの部分で構成されます。
リクエスト行には、リクエストされたメソッド、URL、およびプロトコルのバージョンが含まれます。例:
GET /api/users HTTP/1.1
リクエスト ヘッダーには、HTTP リクエストのメタデータが含まれます。例:
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 Accept-Encoding: gzip, deflate Accept-Language: en-US,en;q=0.8
リクエスト本文には、アプリケーションと送信されるデータが含まれます。例:
{"username":"admin","password":"123456"}
以下は、標準ライブラリを使用して HTTP GET リクエストを開始する例です。 例:
package main import ( "fmt" "io/ioutil" "net/http" ) func main() { resp, err := http.Get("https://www.example.com") if err != nil { panic(err) } defer resp.Body.Close() body, err := ioutil.ReadAll(resp.Body) if err != nil { panic(err) } fmt.Println(string(body)) }
上の例では、http.Get
関数を使用して HTTP GET リクエストを開始しました。この関数は、HTTP 応答のさまざまな部分を含む http.Response
タイプの構造を返します。 ioutil.ReadAll
関数を使用して、応答本文の内容を読み取り、コンソールに出力します。
HTTP GET リクエストに加えて、標準ライブラリを使用して次のこともできます。 HTTP POST リクエストを開始します。標準ライブラリを使用して HTTP POST リクエストを作成する例を次に示します。
package main import ( "bytes" "fmt" "io/ioutil" "net/http" ) func main() { url := "http://www.example.com/api/login" data := []byte(`{"username":"admin","password":"123456"}`) req, err := http.NewRequest("POST", url, bytes.NewBuffer(data)) if err != nil { panic(err) } req.Header.Set("Content-Type", "application/json") client := &http.Client{} resp, err := client.Do(req) if err != nil { panic(err) } defer resp.Body.Close() body, err := ioutil.ReadAll(resp.Body) if err != nil { panic(err) } fmt.Println(string(body)) }
上記の例では、http.NewRequest
関数を使用して HTTP リクエストを作成しました。リクエストメソッドを POST、URL を http://www.example.com/api/login
、リクエスト本文を {"username":"admin"," として指定しました。パスワード":"123456"}
。また、リクエスト ヘッダーの Content-Type を application/json に設定します。最後に、client.Do
メソッドを使用して HTTP POST リクエストを実行し、応答本文の内容を読み取ります。
標準ライブラリに加えて、サードパーティ ライブラリを使用して HTTP リクエストを開始することもできます。 HTTP リクエスト。以下は、サードパーティ ライブラリ github.com/go-resty/resty
を使用して HTTP GET リクエストを作成する例です。
package main import ( "fmt" "github.com/go-resty/resty/v2" ) func main() { client := resty.New() resp, err := client.R(). EnableTrace(). Get("https://www.example.com") if err != nil { panic(err) } fmt.Println(string(resp.Body())) }
上の例では、github を使用しました。 com/go-resty/resty
ライブラリによって提供される Get
メソッドは、HTTP GET リクエストを開始します。また、EnableTrace
メソッドを使用して、HTTP リクエストの詳細を出力しました。
この記事の導入部を通じて、標準ライブラリまたはサードパーティ ライブラリを使用して HTTP リクエストを開始する方法を学びました。 Go言語で。 HTTP リクエストの基本構造と使用法を理解することは、Web アプリケーションを開発する場合に非常に重要です。実際の開発では、HTTP リクエストのセキュリティやパフォーマンスなどの問題も考慮する必要があります。
以上が標準ライブラリを使用して Go 言語で HTTP リクエストを開始する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。