问题标签 [go-http]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
go - Golang fasthttp 路由器自定义记录器
我正在玩 fasthttp 和它的路由器,我对基本的东西没有任何问题,我有一个工作服务器和一个路由器,这是很容易的部分。
问题出在记录器上,我希望能够自定义该记录器,但是 ctx.Logger() 似乎不可能,因为它只需要一个 Printf 参数,而且格式不是我想要的。
有谁知道我可以在文档中的哪里找到我想做的工作示例?
我目前拥有的代码示例:
因为我仍在尝试使用 Web 服务器,但我仍然不了解它的一些内容,Go 也一样。所以欢迎举个例子。
例如,我希望能够使用主包中的记录器定义来做类似的事情:
go - 多余的 WriteHeader 没有响应
我正在编写一个向 WebSocket 网关发送请求的 HTTP API。我正在使用go1.14.7
和gorilla/mux
v1.8.0
。代码将使用GOOS=linux
GOARCH=arm
GOARM=7
.
我的问题如下:
respondBadRequest()
即使我从不使用,也总是记录WriteHeader
:http: superfluous response.WriteHeader call from main.(*HttpHandler).respondBadRequest
- API响应总是
200 OK
即使respondBadRequest()
被调用 - API 响应总是有一个空的正文
我对 Go 完全陌生。下面是我的代码结构。
go - 使用 http.FileServer 按需生成文件
我正在使用net/http
构建缩略图库服务器作为学习练习。http.FileServer
适用于提供原始版本的图像。
现在我正在探索使用类似技术提供缩略图的可能性。
我想要的是:为 url 前缀挂钩一个 FileServer,例如/thumbs/
. FileServer 应该从存储缩略图的目录提供服务,可能在/tmp
.
当缩略图文件不存在时,它不应该返回 404,而是调用我的缩略图生成代码。
我想尽可能多地重用 FileServer 代码,所以我正在考虑编写一个自定义http.FS
实现来实现这一点。还有这个答案可能与我需要的相差不远:How to custom handle a file not being found when using go static file server?
哪个是更好的方法?
go - Golang 通过一个客户端的两个 HTTP 请求
如何在 Go 上通过一个客户端准备两个 HTTP 请求而不会出现内存问题?
我有下一个代码:
两个请求都有效,如果单独使用没有错误。但是,如果尝试同时使用它们(从一个获取 ID,然后在另一个上处理此数据请求),我会遇到内存错误
请提供有关使用一个 httpClient 处理两个请求的正确性的想法?谢谢
go - 如何包装一个只做一些修改的 Go 包?
如何编写一个包装库的 Go 包,以便调用被覆盖的函数使用我的实现,而非覆盖函数“落入”我正在包装的库?
特别是:我希望我的 Go 包 wrap net/http
,除了我最初只想替换http.FileServer
and http.NotFoundHandler
,并让所有其他功能保持不变。我的库是现有代码的替代品,它调用了net/http
我不会覆盖的其他函数。例如,我希望能够做到:
我试过的
我可以手动覆盖包装库导出的每个函数(如下所示),但如果可能的话,我宁愿避免这种情况。这种方法是不可取的,因为它不考虑从我包装的库中调用我覆盖的函数的实例。
我也可以完全分叉net/http
源并直接更改它,但我希望清楚我正在做哪些更改,而无需与原始版本进行比较。维护标准库的一部分以仅覆盖几个函数也是没有意义的。
理由
我不是在寻找关于这是否是一个“好”想法的评论。我只是想知道该怎么做。
这个库的计划是简单地改变 404 页面和目录列表索引页面的外观。这种纯粹的美学变化不会影响net/http
. 如果它的结构不是包装所有的net/http
,那么用户将不得不在使用两个包之间切换来做同样的事情。那么我的库不能被认为是已经使用net/http
.
随着时间的推移,我还打算覆盖更多函数,但我的库的 API 将始终与net/http
. 这样做可以减少每次库更改时手动http.Function
替换调用的需要。mylibrary.Function
此外,我希望能够在net/http
我没有编写的代码(使用)中导入我的替换,并且不想手动重构。
node.js - Go 深入理解 REST API 中的自定义错误处理
我来自 Node.js 的世界,在那里我从使用Express构建 Web 应用程序中学到了很多东西,我认为,在处理错误和出现意外错误时,有一个很好的方法来处理,有一个很棒的抓住它的方法。
所以,我在 Go 中寻找同样的东西。我不知道我是否已经找到它,但我发现的来自这个链接https://astaxie.gitbooks.io/build-web-application-with-golang/content/en/11.1.html和一些我读过的文章,似乎许多开发人员都在使用相同的方法。
我的担心,而不是真正的担心,是我不理解下面代码的某些部分。
我知道可以在 go 中创建自定义类型,但说真的,我不明白这是什么意思或如何在http.Serve中理解它
我不明白的一件事是
在我阅读的大多数代码中,通常它是一个结构或替换类型(我的意思是type Account int
),但在这里,它是一个函数。我想了解它如何帮助处理错误。
在上面的执行ServeHTTP
里面,我们有这条线err := fn(w, r)
。请问,你能解释一下吗?
在同一篇文章中,我们有这段代码
这条线
拜托,你能帮我理解这个appHandler(viewRecord)
吗?究竟是什么?这是一个实例化,是铸造吗?它应该做什么?我的意思是,如何理解似乎很关键的那条线?
最后一个问题,请。是否有可能在处理请求的过程中捕捉到任何地方可能发生的错误?在 Node.js 中,您可以执行类似的操作
类似的东西,在Go中可能吗?
谢谢你。
http - 将 http 响应流式传输到 http ResponseWriter
我想将 HTTP GET 响应流式传输到 HTTP responsewriter。我在网上搜索了解决方案,最后使用了 io.Copy 。但它不是流式传输,而是下载整个 get 响应,然后传递给 HTTP responsewriter。我被这个问题困扰了2天。如果你知道,请帮助我。下面是示例代码
go - 如何在 GoLang 中的 http2 传输上设置 MaxConnsPerHost
我试图强制 GoLang 使用 HTTP2,所以做了以下事情:
但我还需要设置 MaxConnsPerHost 和 MaxIdleConns,这是我做不到的。我知道我可以在 HTTP1 中设置它们,如下所示:
我怎样才能为 HTTP2 实现相同的目标?
go - 如何避免在失败情况下重复返回 InternalServerError?
我正在尝试向我的网络应用程序添加一个用于错误处理的功能,而不是一直这样做
做这样的事情:
我做了这个功能:
但我不知道发生错误时如何破坏处理程序
go - 如何在 Golang 中将 Secret 提取为配置文件
所以我对 Go 还是很陌生,我很好奇如何动态导入密码和 URL,而不在我的脚本中暴露它们。在 python 中,我能够使用 JSON 有效负载来实现这一点,并且基本上会导入 JSON,加载有效负载,并指定何时需要传递需要保密的规范。
这是我的 Go 脚本:
可以想象,我在加载密码时运气不佳,当我使用直接令牌更改以下内容时,它会在脚本中公开我的密码,并在 Jira 中生成 JSON 有效负载。
因此,如果我在 YAML 中有这样的配置文件:
如何将 YAML 文件加载到我的脚本中?如何加载等效的 JSON?