如何在golang中传递http请求?

时间:2016-02-28 00:03:49

标签: go proxy network-programming

我在golang中有一个Request对象,我想通过net.Conn来提供这个对象的内容,作为代理任务的一部分。 我想打电话给

req, err := http.ReadRequest(bufio.NewReader(conn_to_client))
conn_to_remote_server.Write(... ? ... )

但我不知道我将作为论点传递给我什么。任何建议将不胜感激。

1 个答案:

答案 0 :(得分:0)

查看Negroni中间件。它让你通过不同的中间件和自定义HandlerFuncs传递你的HTTP请求。 像这样:

'15'

注意 n := negroni.New( negroni.NewRecovery(), negroni.HandlerFunc(myMiddleware), negroni.NewLogger(), negroni.NewStatic(http.Dir("public")), ) ... ... func myMiddleware(rw http.ResponseWriter, r *http.Request, next http.HandlerFunc) { log.Println("Logging on the way there...") if r.URL.Query().Get("password") == "secret123" { next(rw, r) //**<--------passing the request to next middleware/func** } else { http.Error(rw, "Not Authorized", 401) } log.Println("Logging on the way back...") } 如何用于传递HTTP请求

如果您不想使用Negroni,您可以随时查看它如何将HTTP请求传递给另一个中间件。

它使用自定义处理程序,如下所示:

next(rw,r)

参考:https://gobridge.gitbooks.io/building-web-apps-with-go/content/en/middleware/index.html