亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 `http.NewRequest(...)` 發出 URL 編碼的 POST 請求

使用 `http.NewRequest(...)` 發出 URL 編碼的 POST 請求

Go
慕碼人8056858 2021-07-01 10:00:03
我想向 API 發出 POST 請求,將我的數據作為application/x-www-form-urlencoded內容類型發送。由于我需要管理請求標頭,因此我使用該http.NewRequest(method, urlStr string, body io.Reader)方法來創建請求。對于這個 POST 請求,我將我的數據查詢附加到 URL 并將正文留空,如下所示:package mainimport (    "bytes"    "fmt"    "net/http"    "net/url"    "strconv")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    u.RawQuery = data.Encode()    urlStr := fmt.Sprintf("%v", u) // "https://api.com/user/?name=foo&surname=bar"    client := &http.Client{}    r, _ := http.NewRequest("POST", urlStr, nil)    r.Header.Add("Authorization", "auth_token=\"XXXXXXX\"")    r.Header.Add("Content-Type", "application/x-www-form-urlencoded")    r.Header.Add("Content-Length", strconv.Itoa(len(data.Encode())))    resp, _ := client.Do(r)    fmt.Println(resp.Status)}當我回應時,我總是得到一個400 BAD REQUEST. 我相信問題取決于我的請求,并且 API 不了解我發布的有效負載。我知道像 那樣的方法Request.ParseForm,但不太確定如何在這種情況下使用它。也許我錯過了一些進一步的標題,也許有更好的方法來application/json使用body參數將有效負載作為類型發送?
查看完整描述

1 回答

  • 1 回答
  • 0 關注
  • 735 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號