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

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

我如何在 golang 中創建這樣的發布請求

我如何在 golang 中創建這樣的發布請求

Go
心有法竹 2022-12-26 16:27:22
大家好,有一個關于 POST REQUEST 的問題我有一些像這樣的 python 代碼 data = { "name": "Frank", "age": 21, "nationality": ["Britan"], }r = requests.post('somesite', json=data) 我如何在 GOLANG 上發出類似的 POST 請求,我嘗試使用 "nationality": ["Britan"] 但我嘗試使用 [] 時遇到一些錯誤使用 map[string]string 但它不起作用可能是我可以使用一些結構來解決我的問題
查看完整描述

2 回答

?
慕娘9325324

TA貢獻1783條經驗 獲得超5個贊

也許你應該使用map[string]interface{}


或者您也可以strings.NewReader直接使用發送請求


package main


import (

  "fmt"

  "strings"

  "net/http"

  "io/ioutil"

)


func main() {


  url := "http://localhost:8080"

  method := "POST"


  payload := strings.NewReader(`{

    "name": "Flank",

    "age": 21,

    "nationality": ["Britan"]

}`)


  client := &http.Client {

  }

  req, err := http.NewRequest(method, url, payload)


  if err != nil {

    fmt.Println(err)

    return

  }

  req.Header.Add("Content-Type", "application/json")


  res, err := client.Do(req)

  if err != nil {

    fmt.Println(err)

    return

  }

  defer res.Body.Close()


  body, err := ioutil.ReadAll(res.Body)

  if err != nil {

    fmt.Println(err)

    return

  }

  fmt.Println(string(body))

}


查看完整回答
反對 回復 2022-12-26
?
catspeake

TA貢獻1111條經驗 獲得超0個贊

你應該使用 map[string]interface{} 而不是 map[string]string

作為此鏈接(https://go.dev/blog/maps):

映射[鍵類型]值類型

其中 KeyType 可以是任何可比較的類型,而 ValueType 可以是任何類型,包括另一個映射!

你的 body 既有 string 又有 slice 類型,所以 ValueType 是 interface{} 比 string 好。


查看完整回答
反對 回復 2022-12-26
  • 2 回答
  • 0 關注
  • 86 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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