gpt4 book ai didi

go - 我想在使用 ReverseProxy 重定向 Post 表单之前向其添加新值

转载 作者:行者123 更新时间:2023-12-02 13:20:33 26 4
gpt4 key购买 nike

我正在使用 GOLANG 编写一个有特殊要求的 ReverseProxyReverseProxy 工作得很好。但我对特殊要求有疑问用户发送 Http Post 表单包含用户和电子邮件我想向帖子表单添加新值例如网址在使用 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.addr.PostForm.addr.Form.set r.PostForm.set它不起作用。

最佳答案

你可以试试这个。

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) {
r.ParseForm()
form := r.Form
form.Add("hello", "world")
body := form.Encode()
r.Body = ioutil.NopCloser(strings.NewReader(body))
r.ContentLength = int64(len(body))
proxy.ServeHTTP(w, r)
})

log.Fatal(http.ListenAndServe(":8080", nil))
}

关于go - 我想在使用 ReverseProxy 重定向 Post 表单之前向其添加新值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60492015/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com