为了账号安全,请及时绑定邮箱和手机立即绑定

正确的数据没有到达 Twilio

正确的数据没有到达 Twilio

Go
森林海 2022-07-11 15:16:00
我正在尝试使用 Go 的 HTTP 包对 Twilio 进行 API 调用,但似乎正确的数据没有到达 Twilio。要求:func startVerification() (string, error) {    url := fmt.Sprintf("https://verify.twilio.com/v2/Services/%s/Verifications", internal.Config.TwilioServiceSID)    xx := "Locale=es&To=+1234567890&Channel=sms"    payload := strings.NewReader(xx)    log.Println(fmt.Sprintf("Payload = %v", xx))    client := &http.Client{}    req, err := http.NewRequest("POST", url, payload)    if err != nil {        return "", fmt.Errorf("error occured while creating request %v", err)    }    req.SetBasicAuth(internal.Config.TwilioSD, internal.Config.TwilioAuthToken)    req.Header.Add("Content-Type", "application/x-www-form-urlencoded")    res, err := client.Do(req)    if err != nil {        return "", fmt.Errorf("error occured while doing %v", err)    }    defer res.Body.Close()    body, err := ioutil.ReadAll(res.Body)    if err != nil {        return "", fmt.Errorf("error occured while reading %v", err)    }    return string(body), nil}但 Twilio 抱怨的是:{“代码”:60200,“消息”:“无效参数To:1234567890”,“更多信息”:“https://www.twilio.com/docs/errors/60200”,“状态”:400 }但是,如果我从 Postman 发送请求,它就可以工作。我怀疑数字被删除之前的“+”,但我不确定,因为我对 Go 很陌生,不了解它的细微差别。请注意,这+1234567890只是我用于此问题的虚拟数字。
查看完整描述

1 回答

?
慕姐4208626

TA贡献1852条经验 获得超7个赞

你可能想用url.Values这个:


params := url.Values{}

params.Add("Locale", "es")

params.Add("To", "+1234567890")

params.Add("Channel", "sms")

payload := strings.NewReader(params.Encode())

https://play.golang.org/p/qAF3qlLIYPP


查看完整回答
反对 回复 2022-07-11
  • 1 回答
  • 0 关注
  • 96 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号