ホームページ  >  記事  >  バックエンド開発  >  Golangのhttpリクエストパッケージを紹介した記事

Golangのhttpリクエストパッケージを紹介した記事

PHPz
PHPzオリジナル
2023-04-24 14:46:49855ブラウズ

Golang は急速に台頭しているプログラミング言語であり、ネットワーク プログラミングでも大きな注目を集めています。 Golang では、http リクエスト パッケージを使用することで、ネットワーク プログラミングを簡単に実行できます。この記事では、http リクエストの送信、http レスポンスの受信などに関する知識を含め、Golang の http リクエスト パッケージについて紹介します。

  1. http リクエストの送信

Golang では、http.NewRequest() 関数を使用して http リクエストを作成します。この関数のパラメータには、リクエスト メソッド、URL、リクエスト本文などが含まれます。

func NewRequest(method, url string, body io.Reader) (*Request, error)

サンプル コード:

package main

import (
    "bytes"
    "fmt"
    "io/ioutil"
    "net/http"
)

func main() {
    url := "http://example.com"
    jsonStr := []byte(`{"name":"John"}`)

    req, err := http.NewRequest("POST", url, bytes.NewBuffer(jsonStr))
    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, _ := ioutil.ReadAll(resp.Body)
    fmt.Println("response Body:", string(body))
}

上記のコードでは、http.NewRequest() 関数を使用して POST リクエストを作成し、リクエスト ヘッダーの Content-Type を設定します。 http.Client{} を使用してリクエストを送信し、ioutil パッケージの ReadAll() 関数を通じてレスポンス本文を読み取ります。

  1. http レスポンスの受信

Golang では、http.Response 構造を使用して http レスポンスを表します。この構造には、応答ステータス コード、応答ヘッダー、応答本文、およびその他の情報が含まれます。

type Response struct {
    Status     string
    StatusCode int
    Proto      string
    ProtoMajor int
    ProtoMinor int
    Header     Header
    Body       io.ReadCloser
    ContentLength int64
    TransferEncoding []string
    Close bool
    Uncompressed bool
    Trailer Header
    Request *Request
    TLS *tls.ConnectionState
    Cancel <-chan struct{}
}

サンプル コード:

package main

import (
    "fmt"
    "io/ioutil"
    "net/http"
)

func main() {
    resp, err := http.Get("http://example.com")
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    fmt.Println("response Status:", resp.Status)
    fmt.Println("response Headers:", resp.Header)
    body, _ := ioutil.ReadAll(resp.Body)
    fmt.Println("response Body:", string(body))
}

上記のコードでは、http.Get() 関数を使用して GET リクエストを送信し、resp.Status、resp.Header、および resp.Body それぞれ、コード、応答ヘッダー、応答本文、および文字列形式での出力。

概要

Golang の http リクエスト パッケージは、非常に便利なネットワーク プログラミング インターフェイスを提供し、ネットワーク プログラミングをシンプルかつ効率的にします。 http.NewRequest() や http.Get() などの関数を通じて http リクエストを作成し、http.Response 構造を通じて http レスポンス情報を取得できます。 Golang の http リクエスト パッケージをマスターすると、Web サーバーや Web サービスを実装する際のコードの再利用性と可読性が向上します。

以上がGolangのhttpリクエストパッケージを紹介した記事の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。