要向http.Request的body中添加一个键值对,可以先将其转换为一个map,然后对其进行修改,最后再将其转回为byte数组。

以下是一个示例代码:

import (
    "net/http"
    "io/ioutil"
    "encoding/json"
)

type RequestBody struct {
    UserEmail string `json:"userEmail"`
}

func handleRequest(w http.ResponseWriter, r *http.Request) {
    // 读取请求body
    body, _ := ioutil.ReadAll(r.Body)

    // 将请求body转换为map
    var data map[string]interface{}
    json.Unmarshal(body, &data)

    // 添加新的键值对
    data["userEmail"] = "UserEmail"

    // 转换回byte数组
    updatedBody, _ := json.Marshal(data)

    // 将更新后的byte数组重新写入请求body
    r.Body = ioutil.NopCloser(bytes.NewReader(updatedBody))
}

这样,你就可以通过在http.Request的body中添加一个键值对"UserEmail":“userEmail”。请注意,上述示例中使用了encoding/json包来实现JSON的编码和解码操作。如果你的请求数据格式不是JSON,那么需要根据实际情况选择正确的编码/解码方式。

10-10 02:50