[英]golang passing data payload from HTTP client
我有一個 HTTPS 端點,可以很好地與這樣的 cURL 命令配合使用:
curl -k -u xyz:pqr \
--data "grant_type=client_credentials" \
https://my-url
現在我正在嘗試使用golang
來調用相同的 API 端點,如下所示:
data := url.Values{}
data.Set("grant_type", "client_credentials")
req, err := http.NewRequestWithContext(
ctx,
"POST",
"https://my-url",
strings.NewReader(data.Encode())
)
它失敗並顯示錯誤正文:
{
"error_description":"grant_type is required",
"error":"invalid_request"
}
我已經將grant_type
作為最后一個參數傳遞給http.NewRequestWithContext()
函數。
我錯過了什么?
您沒有正確翻譯卷曲。 這個工具可能會有所幫助: https ://mholt.github.io/curl-to-go/
本質上,您需要添加用戶身份驗證。
req.SetBasicAuth("xyz", "pqr")
// Might help to set the `Content-Type` too
req.Header.Set("Content-Type", "application/x-www-form-urlencoded")
-k
on curl 似乎也在從文件中讀取一些 curl 參數。 您將要確保您也翻譯這些內容。 從你的例子中我看不出它們是什么。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.