>백엔드 개발 >Golang >`http.NewRequest(...)`를 사용하여 Go에서 URL 인코딩된 POST 요청을 구성하는 방법은 무엇입니까?

`http.NewRequest(...)`를 사용하여 Go에서 URL 인코딩된 POST 요청을 구성하는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-12-30 14:40:15767검색

How to Construct a URL-Encoded POST Request in Go using `http.NewRequest(...)`?

http.NewRequest(...)를 사용한 URL 인코딩 POST 요청

URL 인코딩 본문이 있는 POST 요청을 생성할 때 페이로드는 다음 위치에 제공되어야 합니다. 원본에 표시된 것처럼 URL에 추가되지 않고 http.NewRequest(...) 메서드의 본문 매개변수

package main

import (
    "fmt"
    "net/http"
    "net/url"
    "strconv"
    "strings"
)

func main() {
    apiUrl := "https://api.com"
    resource := "/user/"
    data := url.Values{}
    data.Set("name", "foo")
    data.Add("surname", "bar")

    u, _ := url.ParseRequestURI(apiUrl)
    u.Path = resource
    urlStr := u.String() // "https://api.com/user/"

    client := &http.Client{}
    r, _ := http.NewRequest(http.MethodPost, urlStr, strings.NewReader(data.Encode())) // URL-encoded payload
    r.Header.Add("Authorization", "auth_token=\"XXXXXXX\"")
    r.Header.Add("Content-Type", "application/x-www-form-urlencoded")

    resp, _ := client.Do(r)
    fmt.Println(resp.Status)
}

URL 인코딩 데이터를 요청 본문으로 전달하면 API가 페이로드를 올바르게 해석하고 그에 따라 응답할 수 있습니다.

위 내용은 `http.NewRequest(...)`를 사용하여 Go에서 URL 인코딩된 POST 요청을 구성하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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