Go 在使用ReverseProxy重定向Post表单之前,我想向它添加一个新值

Go 在使用ReverseProxy重定向Post表单之前,我想向它添加一个新值,go,reverse-proxy,Go,Reverse Proxy,我正在用GOLANG写一个有特殊要求的ReverseProxy 反向氧化很好用。 但我有一个特殊要求的问题 用户发送Http Post表单 包含用户和电子邮件 我想在Post表单中添加一个新值 例如url 在我使用ReverseProxy重定向之前 这是我的代理代码 package main import ( "log" "net/http" "net/http/httputil" "net/url" ) func main() { origin, _

我正在用GOLANG写一个有特殊要求的ReverseProxy 反向氧化很好用。 但我有一个特殊要求的问题 用户发送Http Post表单 包含用户和电子邮件 我想在Post表单中添加一个新值 例如url 在我使用ReverseProxy重定向之前

这是我的代理代码

package main

import (
    "log"
    "net/http"
    "net/http/httputil"
    "net/url"
)

func main() {
    origin, _ := url.Parse("http://localhost:9000/")

    director := func(req *http.Request) {
        req.Header.Add("X-Forwarded-Host", req.Host)
        req.Header.Add("X-Origin-Host", origin.Host)
        req.URL.Scheme = "http"
        req.URL.Host = origin.Host
    }

    proxy := &httputil.ReverseProxy{Director: director}

    http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
        proxy.ServeHTTP(w, r)
    })

    log.Fatal(http.ListenAndServe(":8080", nil))
}
我尝试了
R.Form.add
r.PostForm.add
r.Form.set
r.PostForm.set
它不起作用。

你可以试试这个

func main(){
来源:=url.Parse(“http://localhost:9000/")
控制器:=func(请求*http.Request){
请求头添加(“X转发主机”,请求主机)
请求标题添加(“X-Origin-Host”,Origin.Host)
req.URL.Scheme=“http”
req.URL.Host=origin.Host
}
代理:=&httputil.ReverseProxy{Director:Director}
http.HandleFunc(“/”,func(w http.ResponseWriter,r*http.Request){
r、 ParseForm()
形式:=r.形式
表格。添加(“你好”,“世界”)
body:=form.Encode()
r、 Body=ioutil.nocloser(strings.NewReader(Body))
r、 ContentLength=int64(len(body))
proxy.ServeHTTP(w,r)
})
log.Fatal(http.ListenAndServe(“:8080”,nil))
}

有什么问题吗?是否有任何尝试?您已经具有控制器功能。只需将请求主体替换为修改后的表单即可。您可能还必须更新文件。我找不到方法来更新。我有STFW和RTFM,但我想不出来out@Peter你能告诉我怎么做吗?你有一个简单的例子吗