Bagaimana untuk melaksanakan permintaan https menggunakan golang

PHPz
Lepaskan: 2023-04-18 09:23:06
asal
1361 orang telah melayarinya

Salah satu kelebihan golang ialah keupayaan rangkaiannya yang berkuasa. Dalam komunikasi rangkaian, semakin banyak pelayan menyokong protokol https, dan sewajarnya, pelanggan juga perlu menyokong permintaan https. Artikel ini akan memperkenalkan cara menggunakan golang untuk melaksanakan permintaan https.

  1. Import pakej

Pertama, kita perlu mengimport pakej yang sepadan:

import (
    "crypto/tls"
    "net/http"
    "time"
)
Salin selepas log masuk

Antaranya, pakej crypto/tls menyediakan TLS dan Protokol SSL Pelaksanaan pakej net/http menyediakan pelaksanaan permintaan http, pakej masa digunakan untuk menetapkan tamat masa.

  1. Buat klien http

Sebelum membuat permintaan http, kita perlu mencipta klien http. Apabila mencipta klien http, anda perlu menggunakan antara muka RoundTripper untuk menetapkan konfigurasi TLS Kod sampel adalah seperti berikut:

func newHTTPSClient() *http.Client {
    tlsCfg := &tls.Config{
        InsecureSkipVerify: true,
    }

    transport := &http.Transport{
        TLSClientConfig: tlsCfg,
        Proxy:           http.ProxyFromEnvironment,
        DialContext: (&net.Dialer{
            Timeout:   30 * time.Second,
            KeepAlive: 30 * time.Second,
            DualStack: true,
        }).DialContext,
        MaxIdleConns:          100,
        IdleConnTimeout:       90 * time.Second,
        TLSHandshakeTimeout:   10 * time.Second,
        ExpectContinueTimeout: 1 * time.Second,
    }

    return &http.Client{
        Timeout:   time.Second * 30,
        Transport: transport,
    }
}
Salin selepas log masuk

Perlu diambil perhatian bahawa dalam kod di atas, kami menetapkan InsecureSkipVerify kepada benar. , iaitu langkau pengesahan Sijil. Jika anda perlu mengesahkan sijil semasa pembangunan, tetapkan nilai ini kepada palsu.

  1. Hantar permintaan http

Selepas mencipta klien http, kami boleh menggunakan klien untuk memulakan permintaan https. Kod sampel adalah seperti berikut:

func sendHTTPSRequest() {
    client := newHTTPSClient()

    resp, err := client.Get("https://example.com")
    if err != nil {
        log.Fatal(err)
    }
    defer resp.Body.Close()

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

    fmt.Println(string(body))
}
Salin selepas log masuk

Kami menggunakan kaedah http.Get untuk memulakan permintaan https dan membaca badan respons yang dikembalikan melalui kaedah ReadAll dalam pakej ioutil.

  1. Ringkasan

Artikel ini memperkenalkan cara menggunakan golang untuk melaksanakan permintaan https. Apabila melaksanakan permintaan https, anda perlu menggunakan pelaksanaan protokol TLS dan SSL yang disediakan oleh pakej crypto/tls dan pelaksanaan permintaan http yang disediakan oleh pakej net/http. Pada masa yang sama, anda perlu memberi perhatian kepada menetapkan parameter seperti tamat masa dan konfigurasi TLS untuk memastikan kebolehpercayaan dan keselamatan permintaan.

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan permintaan https menggunakan golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan