草庐IT

gorilla-toolkit

全部标签

http - 从中间件获取 gorilla/mux 路由器当前路由名称

问题:无法从中间件访问mux.CurrentRoute(r).GetName()。(虽然我已经能够从我的中间件访问它,但由于它以前无法访问请求,我不得不改变我的中间件的工作方式)。所以我搞砸了一些事情,我不确定如何恢复到可以访问路由名称的工作状态。如有任何帮助,我们将不胜感激!错误:runtimeerror:invalidmemoryaddressornilpointerdereference代码:funcmain(){var(errerrorr*mux.RouterdevRouter*mux.RouterusersRouter*mux.RouterbrandsRouter*mux.R

go - 具有多个子包的 gorilla 多路复用路由中的循环导入问题

这是我的项目结构--mainpackage--|--child_package1--|--child_package2--|--child_package3IhaveallthetheroutesandmethodcallmanagementforAPIcallslistedinmain_packageTherouterHandlerfrommain_package.golookslikethis:funcHandlers(db*sql.DB,customeruploadFilestring)*mux.Router{router:=mux.NewRouter()router.Handl

Golang 中使用 Gorilla/rpc 的 JSON RPC 请求

我正在尝试使用Gorilla/rpc包来设置RPC以接收请求并回复响应(显然)。首先,我尝试使用Gorilla/rpc提供的示例这是我的代码:typeHelloArgsstruct{Whostring}typeHelloReplystruct{Messagestring}typeHelloServicestruct{}func(h*HelloService)Say(r*http.Request,args*HelloArgs,reply*HelloReply)error{reply.Message="Hello,"+args.Who+"!"returnnil}funcmain(){r:=

logging - 在 Gorilla Handler 中记录线程 ID

在GorillaHandlers中登录时,我们如何获取处理程序正在处理的http请求的threadid或任何其他唯一ID?在Java中,当Tomcat或其他容器处理多个http请求时,threadid有助于跟踪各个http请求处理的所有日志消息。Go中的等价物是什么?给定使用Gorilla库开发的RestAPI,我如何在处理程序处理中跟踪特定http请求的所有日志语句? 最佳答案 gorilla/handlers默认情况下库不提供执行此操作的方法:那里的日志记录功能以Apache格式记录,但不提供此功能。另请记住,“线程ID”在这里

regex - 如何将子域与 gorilla mux 匹配

我需要使用gorillamux构建匹配两个子域(prefix.api.example.com和prefix.api.sandbox.example.com)的路由路由器。到目前为止,我有下面的正则表达式,但路由器根据请求返回404。知道这是为什么吗?router:=mux.NewRouter()route:=router.Host(`prefix.api{_:(^$|^\.sandbox$)}.example.com`)更多代码packagemainimport("github.com/gorilla/mux""net/http")typehandlerstruct{}func(_ha

go - 允许使用 gorilla 处理程序的来源

我目前正在编写一个RestfulWeb服务器,我想从angular2前端对其进行测试。由于服务器在开发时托管在另一个域上,因此我需要Access-Control-Allow-Origin:*(我认为)。我试图通过使用gorilla处理程序包来实现这一点,即:origins:=handlers.AllowedOrigins([]string{"*"})log.Fatal(http.ListenAndServe(":"+os.Getenv(util.Port),handlers.LoggingHandler(os.Stdout,handlers.CORS(origins)(router))

go - 如何像使用 gorilla 上下文库一样使用 Go 中的新上下文包?

Go附带了一个名为context的新包,在最近的版本中(我认为是Go1.7)我们应该能够像使用gorilla/context包一样使用它:http://www.gorillatoolkit.org/pkg/context借助gorilla上下文,您可以非常轻松地设置和获取与请求、处理程序和中间件相关的变量。在gorilla上下文中设置一个值真的很容易:funchandleFunc(whttp.ResponseWriter,r*http.Request){context.Set(r,"foo","bar")}为了获得值(value)我们可以做的:funchandleFunc(whttp.

Gorilla Mux 不处理我的路径

当我使用http中的默认路由器时,一切正常,但如果我改用gorilla/mux中的路由器,我会得到一个404页面,主体为404页面未找到。如下面的示例所示,其他一切都完全相同。为什么gorilla/mux路由器不是这样工作的?正确工作,使用http路由:packagemainimport"net/http"funcsimplestPossible(whttp.ResponseWriter,req*http.Request){w.Write([]byte("MWEsaysOK"))}funcmain(){http.HandleFunc("/",simplestPossible)http.

go - 在 Gorilla/Mux 中逆向一个子路由器

我想获取命名子路径的路径,但我下面的代码不起作用。当我尝试在非子路径上使用相同的逻辑时,它工作正常。如何获取命名子路径的路径?router=mux.NewRouter()//thisisaglobalvariablehome:=router.Path("/home").Subrouter()home.Methods("GET").HandlerFunc(c.GetHomeHandler).Name("home")home.Methods("POST").HandlerFunc(c.PostHomeHandler)p,err:=router.Get("home").URL()if(err

gorilla websocket 错误 : close 1007 Illegal UTF-8 Sequence

我正在尝试为GlassFish实现一个websocket代理服务器。如果我尝试连接多个客户端,则会出现错误:ReadMessageFailed:websocket:close1007IllegalUTF-8Sequence.我确信GlassFish服务器发送了正确的数据,因为同一个服务器可以与另一个使用node.js实现的代理服务器正常工作。funcGlassFishHandler(conn*websocket.Conn){deferconn.Close()conn.SetReadDeadline(time.Now().Add(1000*time.Second))conn.SetWri