Golang错误:未定义:http.NewSingleHostReverseProxy。

4
我尝试使用 Golang 编写一个简单的程序,以下是代码:

我尝试使用 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())
        }
}

构建:

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)
        }
}

1
难道不应该是 httputil.NewSingleHostReverseProxy 吗? - raina77ow
@raina77ow,我用httputil.NewSingleHostReverseProxy替换了http.NewSingleHostReverseProxy,错误已经消失了,谢谢。但是http.URL的错误仍然存在。 - dlion
因为实际上是 url.URL 而不是 http.URL。并非所有与 HTTP 相关的函数/类型都集中在 net/http 包中。 - raina77ow
@raina77ow,谢谢!我修复了所有错误。感谢您的帮助。 - dlion
希望你们中的任何一位可以回答这个问题,这样它就可以被标记为已解决了。谢谢! - nemo
1个回答

3

我添加了

"net/url"

http.NewSingleHostReverseProxy 替换为 httputil.NewSingleHostReverseProxy,同样地, 将http.URL替换为url.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 的帮助。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接