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

使用包含转义序列的 strings.NewReader 发布请求

使用包含转义序列的 strings.NewReader 发布请求

Go
米琪卡哇伊 2023-02-14 15:24:04
我正在尝试从接受有效负载的 POST 端点检索响应。对于curl要求:curl --request POST \  --url https://api.io/v1/oauth/token \  --header 'Accept: application/json' \  --header 'Content-Type: application/json' \  --data '{      "userToken": "myemail@domain.com:MyUserProfileToken"    }'我可以这样做:func GetJWT() string {    endpoint := "https://api.io/v1/oauth/token"    payload := strings.NewReader(`{      "userToken":"myemail@domain.com:MyUserProfileToken"}`)    req, _ := http.NewRequest("POST", endpoint, payload)    req.Header.Add("Accept", "application/json")    req.Header.Add("Content-Type", "application/json")    res, _ := http.DefaultClient.Do(req)    defer res.Body.Close()    body, _ := ioutil.ReadAll(res.Body)    return string(body)}和    payload := strings.NewReader("{\n  \"userToken\": \"myemail@domain.com:MyUserProfileToken\"\n}")但是,当我尝试为电子邮件和令牌传递字符串指针,并声明有效负载时func GetJWT(userEmail, userToken *string) string {    endpoint := "https://api.io/v1/oauth/token"    payload := strings.NewReader("{\n  \"userToken\": \*userEmail\":\"\*userToken\n}")    req, _ := http.NewRequest("POST", endpoint, payload)    req.Header.Add("Accept", "application/json")    req.Header.Add("Content-Type", "application/json")    res, _ := http.DefaultClient.Do(req)    defer res.Body.Close()    body, _ := ioutil.ReadAll(res.Body)    return string(body)}未知转义返回错误(负载声明的第 53 列)。我如何转义字符串指针以便连接userEmail、“:” 和userToken
查看完整描述

1 回答

?
拉丁的传说

TA贡献1789条经验 获得超8个赞

我在这里看到几个问题。

第一:我认为“未知转义”错误消息是由\*since\*不是合法的转义字符引起的。

第二:Golang不支持字符串插值。所以userEmailuserToken变量实际上从未在您的GetJWT函数中使用过。

Sprintf您可以使用标准库包将变量格式化为字符串fmt。那看起来像这样:

fmt.Sprintf("{\n  \"userToken\" : \"%s:%s\" \n}", *userEmail, *userToken)


查看完整回答
反对 回复 2023-02-14
  • 1 回答
  • 0 关注
  • 152 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信