gpt4 book ai didi

url - 使用 fmt.Printf 打印 URL 时行为异常

转载 作者:IT王子 更新时间:2023-10-29 01:52:06 26 4
gpt4 key购买 nike

如果我将数据库中的 url 保存为

https://xxx.amazonaws.com/sub%2Fsub1/1495771021869-3sx5ims88vu-12f63aaa7d278435e1800486b31f9cc7/xxx.jpg

http.ResponseWriter 以下列格式返回

https://xxx.amazonaws.com/sub!F(MISSING)sub1/1495771021869-3sx5ims88vu-12f63aaa7d278435e1800486b31f9cc7/xxx.jpg

在上面的 url 中你可以看到 %2F 被替换为 !F(MISSING)

谁能帮忙解决这个问题

以下是代码片段`` rs.WriteHeader(retObj.HttpStatus)

jsonStr, res := ConvObjectToJSON(retObj)
if res != nil {
Logger(ctx, cnst.LogError, "In writeReturnError error in ConvObjectToJSON: %v Original object:%v",
res.GetMessageWDetails(), retObj)
rs.WriteHeader(http.StatusInternalServerError)
return
}

var consoleLog *log.Logger = log.New(os.Stdout, cnst.LogPrefix, log.Ldate|log.Ltime)
consoleLog.Print(jsonStr)

cnt, err := fmt.Fprintf(rs, jsonStr)
if nil == err && 0 < cnt {
rs.Header().Set("Content-Type", "application/json")
} else {
Logger(ctx, cnst.LogError, "In writeReturnError error in fmt.Fprintf: %v Original JSON:%v",
err.Error(), jsonStr)
rs.WriteHeader(http.StatusInternalServerError)
}

``

我对 fmt.Fprintf 有疑问

最佳答案

正如评论中还提到的那样:您的问题是 Fprintf 使用第二个参数作为一种格式,将每个 % 解释为一个指示符,它应该在那里插入一个变量。在您的字符串中有一个 % 符号,但您没有提供任何要插入的参数。所以它写着 MISSING

因为你不想格式化任何东西(看起来)就用这个代替:

cnt, err := fmt.Fprint(rs, jsonStr)

关于url - 使用 fmt.Printf 打印 URL 时行为异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49380683/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com