URL 인코딩 페이로드가 포함된 POST 요청
URL 인코딩 데이터가 포함된 POST 요청을 구성할 때 400 BAD가 발생하는 것이 일반적입니다. 서버가 페이로드를 이해할 수 없음을 나타내는 REQUEST 응답입니다. 이 문제는 일반적으로 페이로드가 잘못 제공될 때 발생합니다.
표준 라이브러리의 http.NewRequest(...) 메서드는 페이로드가 io.Reader 인터페이스를 구현해야 하는 세 번째 인수로 제공될 것으로 예상합니다. URL 인코딩 페이로드의 경우 이는 인코딩된 키-값 쌍의 문자열이어야 함을 의미합니다.
예제 코드:
URL 인코딩 페이로드를 올바르게 전송하려면 http.NewRequest(...)를 사용하여 POST 요청으로 데이터를 전송하는 경우 다음 예를 고려하세요.
package main import ( "fmt" "io/ioutil" "net/http" "net/url" "strings" ) func main() { apiUrl := "https://api.com" resource := "/user/" data := url.Values{} data.Set("name", "foo") data.Add("surname", "bar") u, _ := url.ParseRequestURI(apiUrl + resource) client := &http.Client{} r, _ := http.NewRequest(http.MethodPost, u.String(), strings.NewReader(data.Encode())) 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) bodyBytes, _ := ioutil.ReadAll(resp.Body) fmt.Println(string(bodyBytes)) }
이 예에서 URL 인코딩 페이로드는 io.Reader를 구현하는 strings.NewReader 함수에 제공됩니다. 그러면 요청이 올바르게 구성되어 전송됩니다.
위 내용은 URL로 인코딩된 POST 요청을 보낼 때 400 BAD REQUEST가 표시되는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!