Go 在使用ReverseProxy重定向Post表单之前,我想向它添加一个新值
我正在用GOLANG写一个有特殊要求的ReverseProxy 反向氧化很好用。 但我有一个特殊要求的问题 用户发送Http Post表单 包含用户和电子邮件 我想在Post表单中添加一个新值 例如url 在我使用ReverseProxy重定向之前 这是我的代理代码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, _
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你能告诉我怎么做吗?你有一个简单的例子吗