2 回答

TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超8個(gè)贊
我看到 json 無(wú)效,但問(wèn)題是傳遞 media_ids 參數(shù)時(shí)出錯(cuò)。響應(yīng)是:"errors":[{"code":44,"message":"media_ids 參數(shù)無(wú)效。"}] 我雖然在格式上出錯(cuò),但它與沒(méi)有將 media_ids 類型 int64 轉(zhuǎn)換為正確的字符串。這是固定代碼:
data, err := ioutil.ReadFile(fileName)
if err != nil {
fmt.Println(err)
}
mediaResponse, err := api.UploadMedia(base64.StdEncoding.EncodeToString(data))
if err != nil {
fmt.Println(err)
}
v := url.Values{}
v.Set("media_ids", strconv.FormatInt(mediaResponse.MediaID, 10))
result, err := api.PostTweet(posttitle, v)
if err != nil {
fmt.Println(err)
} else {
fmt.Println(result)
}

TA貢獻(xiàn)1858條經(jīng)驗(yàn) 獲得超8個(gè)贊
這不是有效的 json:
tweet := `
"media_ids": 612877656984416256,
"status": "hello"
`
嘗試使用它來(lái)生成您的 json:
type Tweet struct {
MediaIds uint64 `json:"media_ids"`
Status string `json:"status"`
}
tweet := Tweet{612877656984416256, "hello"}
b, err := json.Marshal(tweet)
這導(dǎo)致:
{"media_ids":612877656984416256,"status":"hello"}
與使用原始字符串相比,這有一些好處。
它更以 Go 為中心。該結(jié)構(gòu)可以通過(guò)設(shè)置的值傳遞,并通過(guò)在編譯時(shí)捕獲的正確類型檢查來(lái)讀取。
生成的 json 字符串在語(yǔ)義上更有可能是正確的。例如,Go 也會(huì)對(duì)某些字符進(jìn)行轉(zhuǎn)義,以幫助確保接收器正確解析它們。
- 2 回答
- 0 關(guān)注
- 197 瀏覽
添加回答
舉報(bào)