如果我将数据库中的URL保存为
http.ResponseWriter以下列格式返回
在上面的网址中你可以看到%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)
}
Run Code Online (Sandbox Code Playgroud)
``
我对fmt.Fprintf有疑问
正如评论中所提到的:你的问题是Fprintf使用第二个参数作为一种格式,将每个%解释为一个指标,它应该在那里插入一个变量.在您的字符串中有一个%符号,但您没有提供任何插入参数.所以它的着作MISSING.
既然你不想格式化任何东西(似乎)只需使用它:
cnt, err := fmt.Fprint(rs, jsonStr)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
64 次 |
| 最近记录: |