GolangのCGIでリクエストをそのまま別のサーバに送りたい。
GolangのCGIできたリクエストをそのまま別のサーバに送信したいのですが、下記の方法だとBody部分が削除されてしまいます。
どのように修正すればBodyも送信できますでしょうか。
package main
import (
"fmt"
"io/ioutil"
"net/http"
"net/http/cgi"
"path/filepath"
"strings"
)
func main() {
if err := cgi.Serve(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
// ヘッダをセット
header := w.Header()
header.Set("Content-Type", "text/html; charset=utf-8")
// Requestを生成
newRequest, err := http.NewRequest(r.Method, "[address]"+proxyPath+"?"+formValue.Encode(), r.Body)
if err != nil {
//fmt.Fprintln(w, err)
fmt.Println(err)
}
client := &http.Client{}
// Request
resp, err := client.Do(newRequest)
if err != nil {
//fmt.Fprintln(w, err)
fmt.Println(err)
}
defer resp.Body.Close()
b, err := ioutil.ReadAll(resp.Body)
if err != nil {
//fmt.Fprintln(w, err)
fmt.Println(err)
}
// 結果を出力
fmt.Fprintf(w, string(b))
})); err != nil {
fmt.Println(err)
}
}