>백엔드 개발 >Golang >golang을 사용하여 https 요청을 구현하는 방법

golang을 사용하여 https 요청을 구현하는 방법

PHPz
PHPz원래의
2023-04-18 09:07:341387검색

golang의 장점 중 하나는 강력한 네트워크 기능입니다. 네트워크 통신에서는 점점 더 많은 서버가 https 프로토콜을 지원하므로 클라이언트도 https 요청을 지원해야 합니다. 이 기사에서는 golang을 사용하여 https 요청을 구현하는 방법을 소개합니다.

  1. 패키지 가져오기

먼저 해당 패키지를 가져와야 합니다.

import (
    "crypto/tls"
    "net/http"
    "time"
)

그중 crypto/tls 패키지는 TLS 및 SSL 프로토콜 구현을 제공합니다. net/http 패키지는 http 요청 구현을 제공합니다. 시간 패키지가 사용됩니다. 시간 제한을 설정하세요.

  1. http 클라이언트 만들기

http 요청을 하기 전에 http 클라이언트를 만들어야 합니다. http 클라이언트를 생성할 때 RoundTripper 인터페이스를 사용하여 TLS 구성을 설정해야 합니다. 샘플 코드는 다음과 같습니다.

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,
    }
}

위 코드에서는 InsecureSkipVerify를 true로 설정했습니다. 즉, 인증서를 건너뜁니다. 확인. 개발 중에 인증서를 확인해야 하는 경우 이 값을 false로 설정하세요.

  1. http 요청 보내기

http 클라이언트를 생성한 후 클라이언트를 사용하여 https 요청을 시작할 수 있습니다. 샘플 코드는 다음과 같습니다.

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

http.Get 메소드를 사용하여 https 요청을 시작하고 ioutil 패키지의 ReadAll 메소드를 통해 반환된 응답 본문을 읽습니다.

  1. Summary

이 글에서는 golang을 사용하여 https 요청을 구현하는 방법을 소개합니다. https 요청을 구현할 때 crypto/tls 패키지에서 제공하는 TLS 및 SSL 프로토콜 구현과 net/http 패키지에서 제공하는 http 요청 구현을 사용해야 합니다. 동시에 요청의 신뢰성과 보안을 보장하기 위해 시간 초과 및 TLS 구성과 같은 매개변수 설정에 주의를 기울여야 합니다.

위 내용은 golang을 사용하여 https 요청을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.