NewSingleHostReverseProxy

NewSingleHostReverseProxy

我尝试使用Golang构建一个简单的程序,它是:

package main

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

func main(){

        proxy := http.NewSingleHostReverseProxy( &http.URL{Scheme:"http",Host:"www.google.com",Path:"/"})

        err := http.ListenAndServe(":8080", proxy)
        if err != nil {
                log.Fatal("ListenAndServe: ", err.String())
        }
}

build :
go build myprogram.go

输出:
command-line-arguments
./myprogram.go:5: imported and not used: "net/http/httputil"
./myprogram.go:11: undefined: http.NewSingleHostReverseProxy
./myprogram.go:11: undefined: http.URL
./myprogram.go:15: err.String undefined (type error has no field or method String)

我注意到http.NewSingleHostReverseProxy在“net/http/httputil”包中,为什么我看到这样的错误?
也许我需要特定的命令才能正确构建它?

编辑
后记,这是新的工作代码:
package main

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

func main(){

        proxy := httputil.NewSingleHostReverseProxy( &url.URL{Scheme:"http",Host:"www.google.com",Path:"/"})

        err := http.ListenAndServe(":8080", proxy)
        if err != nil {
                log.Fatal("ListenAndServe: ", err)
        }
}

最佳答案

我加了

"net/url"

并将http.NewSingleHostReverseProxy替换为httputil.NewSingleHostReverseProxy
带有http.URLurl.URL

这是工作代码:
package main

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

func main(){

proxy := httputil.NewSingleHostReverseProxy( &url.URL{Scheme:"http",Host:"www.google.com",Path:"/"})

err := http.ListenAndServe(":8080", proxy)
if err != nil {
        log.Fatal("ListenAndServe: ", err)
}
}

感谢raina77ow的帮助。

10-07 12:13