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

如何在 http 响应正文中返回编码字符串?

如何在 http 响应正文中返回编码字符串?

Go
慕码人8056858 2021-08-23 16:36:34
将编码字符串添加到 http 响应似乎用 !F(MISSING) 替换了一些字符。如何防止?输出:{"encodedText":"M6c8RqL61nMFy%!F(MISSING)hQmciSYrh9ZXgVFVjO"}代码:package mainimport (    "encoding/json"    "fmt"    "net/http"    "net/url")type EncodeResult struct {    EncodedText string `json:"encodedText"`}func main() {    http.HandleFunc("/encodedString", encodedString)    _ = http.ListenAndServe(":8080", nil)}func encodedString(w http.ResponseWriter, r *http.Request) {    inputString := "M6c8RqL61nMFy/hQmciSYrh9ZXgVFVjO"    er := EncodeResult{url.QueryEscape(inputString)}    response, _ := json.Marshal(er)    w.Header().Set("Content-Type", "application/json")    fmt.Fprintf(w, string(response))}
查看完整描述

2 回答

?
郎朗坤

TA贡献1921条经验 获得超9个赞

您正在使用转义值“M6c8RqL61nMFy%2FhQmciSYrh9ZXgVFVjO”作为这一行的格式字符串:

fmt.Fprintf(w, string(response))

Fprintf 尝试格式化动词“%2F”的参数。没有参数,因此 Fprintf 为动词打印 "%!F(MISSING)"。

解决方法是不将输出用作格式字符串。因为写入响应时不需要任何格式,所以将最后一行更改为:

w.Write(response)


查看完整回答
反对 回复 2021-08-23
  • 2 回答
  • 0 关注
  • 264 浏览
慕课专栏
更多

添加回答

举报

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