ホームページ  >  記事  >  バックエンド開発  >  http.Client 関数を使用して、カスタマイズされた HTTP リクエストを送信し、応答ステータス コードと応答コンテンツを取得し、タイムアウトを設定します。

http.Client 関数を使用して、カスタマイズされた HTTP リクエストを送信し、応答ステータス コードと応答コンテンツを取得し、タイムアウトを設定します。

王林
王林オリジナル
2023-07-24 15:27:15777ブラウズ

http.Client 関数を使用して、カスタマイズされた HTTP リクエストを送信し、応答ステータス コードと応答コンテンツを取得し、タイムアウト期間を設定します

Go 言語では、net/http## を使用できます。 # HTTP リクエストを送信して応答を取得するためのパッケージ。その中で、http.Client タイプを使用して、カスタマイズされた HTTP リクエストを送信し、タイムアウトを設定できます。

HTTP クライアントの作成まず、HTTP リクエストを送信するための
http.Client 型のオブジェクトを作成する必要があります。プロキシ、TLS 構成などの HTTP 送信関連のパラメータは、Transport フィールドを設定することで設定できます。デフォルトでは、http.DefaultTransport オブジェクトはリクエストの送信に使用され、http.DefaultClient オブジェクトは使用されます。

以下は、HTTP クライアントを作成するサンプル コードです:

client := &http.Client{
    Timeout: time.Second * 10,
}

上記のコードでは、HTTP クライアント オブジェクト

client を作成し、タイムアウトを 10 秒に設定します。 。

HTTP リクエストの送信HTTP リクエストを送信するには、
http.Client オブジェクトを使用します。http.NewRequest 関数を使用できます。新しい ##http.Request オブジェクトを作成し、http.ClientDo メソッドを使用してリクエストを送信し、応答を取得します。 以下は、HTTP リクエストを送信するためのコード例です:

req, err := http.NewRequest("GET", "https://example.com", nil)
if err != nil {
    log.Fatal(err)
}

resp, err := client.Do(req)
if err != nil {
    log.Fatal(err)
}
defer resp.Body.Close()

上記のコードでは、ターゲット URL が

https://example.com である GET リクエストを作成します。

。次に、client.Do(req) メソッドを使用してリクエストを送信し、応答として resp オブジェクトを取得します。

応答ステータス コードとコンテンツを取得する

resp.StatusCode
フィールドを使用して、HTTP 応答のステータス コードを取得できます。 を使用します。 ioutil.ReadAll応答内容を読み取る関数。 以下は、応答ステータス コードと内容を取得するサンプル コードです。

statusCode := resp.StatusCode
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
    log.Fatal(err)
}

上記のコードでは、

resp.StatusCode

を使用して応答ステータス コードを取得します。 、 ioutil.ReadAll 関数を使用して応答コンテンツを読み取り、body 変数に保存します。

完全な例

次は、http.Client
を使用してカスタマイズされた HTTP リクエストを送信し、応答ステータス コードと応答ステータス コードを取得する方法を示す完全な例です。コンテンツとタイムアウトの設定: <pre class='brush:go;toolbar:false;'>package main import ( &quot;fmt&quot; &quot;io/ioutil&quot; &quot;log&quot; &quot;net/http&quot; &quot;time&quot; ) func main() { client := &amp;http.Client{ Timeout: time.Second * 10, } req, err := http.NewRequest(&quot;GET&quot;, &quot;https://example.com&quot;, nil) if err != nil { log.Fatal(err) } resp, err := client.Do(req) if err != nil { log.Fatal(err) } defer resp.Body.Close() statusCode := resp.StatusCode body, err := ioutil.ReadAll(resp.Body) if err != nil { log.Fatal(err) } fmt.Println(&quot;Response status code:&quot;, statusCode) fmt.Println(&quot;Response body:&quot;, string(body)) }</pre> 上記のコードでは、HTTP クライアント オブジェクト

client

を作成し、タイムアウトを 10 秒に設定しました。次に、GET リクエストを送信して応答ステータス コードとコンテンツを取得し、出力を出力します。

http.Client

を使用してカスタマイズされた HTTP リクエストを送信し、タイムアウトを設定すると、HTTP リクエストをより柔軟に送信し、ステータス コードと応答の内容に基づいて適切に処理できます。

以上がhttp.Client 関数を使用して、カスタマイズされた HTTP リクエストを送信し、応答ステータス コードと応答コンテンツを取得し、タイムアウトを設定します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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