首頁  >  文章  >  後端開發  >  使用http.Client函數發送客製化的HTTP請求並取得回應狀態碼及回應內容,並設定逾時時間

使用http.Client函數發送客製化的HTTP請求並取得回應狀態碼及回應內容,並設定逾時時間

王林
王林原創
2023-07-24 15:27:15777瀏覽

使用http.Client函數發送客製化的HTTP請求並取得回應狀態碼及回應內容,並設定逾時時間

在Go語言中,我們可以使用net/http包來發送HTTP請求並獲取回應。其中,可以使用http.Client類型來傳送客製化的HTTP請求,並設定逾時時間。

建立HTTP客戶端
首先,我們需要建立一個http.Client類型的對象,用於傳送HTTP請求。可以透過設定Transport欄位來設定HTTP傳輸相關的參數,例如代理,TLS配置等。預設情況下,http.DefaultTransport物件用於傳送請求,而http.DefaultClient物件則使用它。

以下是建立HTTP客戶端的範例程式碼:

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

在上述程式碼中,我們建立了一個HTTP客戶端物件client,並設定了逾時時間為10秒。

傳送HTTP請求
使用http.Client物件傳送HTTP請求,可以使用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()

在上述程式碼中,我們建立了一個GET請求,目標URL為https://example.com 。然後,我們使用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請求,並取得回應狀態碼及內容,並設定逾時時間:

package main

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

func main() {
    client := &http.Client{
        Timeout: time.Second * 10,
    }

    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()

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

    fmt.Println("Response status code:", statusCode)
    fmt.Println("Response body:", string(body))
}

在上述程式碼中,我們建立了一個HTTP客戶端物件client,設定了逾時時間為10秒。然後,我們發送一個GET請求並取得到回應的狀態碼及內容,並列印輸出。

透過使用http.Client發送客製化的HTTP請求,並設定逾時時間,我們可以更靈活地發送HTTP請求,並根據回應的狀態碼及內容進行對應的處理。

以上是使用http.Client函數發送客製化的HTTP請求並取得回應狀態碼及回應內容,並設定逾時時間的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn